🐡
plotlyとdashで相関行列とその枠内に相関係数を表示する
この記事で作りたいもの
題目の通り、Excelの分析アドオンで作成した相関行列を条件付き書式で色つけしたような相関行列
環境
- Python 3.6.9
- dash 1.17.0
- plotly 4.8.1
- pandas 1.1.4
手順
dashを使って可視化する。相関行列を出力するデータはscikit-learnのBostonデータセットを使う
import dash
import pandas as pd
import dash_core_components as dcc
import dash_html_components as html
from sklearn.datasets import load_boston
import plotly.figure_factory as ff
boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df['MEDV'] = boston.target
corr = boston_df.corr()
app = dash.Dash()
app.layout = html.Div([
# 相関行列表示コード
])
app.run_server(debug=True)
plotly.graph_objs
調べる限り、あんまり調整が聞かなかった
dcc.Graph(
id = "heatmap",
figure = go.Figure( data = [
go.Heatmap(
x=boston_df.columns,
y=boston_df.columns,
z=corr,
colorscale='RdBu',
reversescale=True
)
])
)
plotly.figure_factoryのannotated_heatmap
一番しっくりきた
dcc.Graph(
figure = ff.create_annotated_heatmap(
z = np.round(corr.values, decimals=2),
x = boston_df.columns.values.tolist(),
y = boston_df.columns.values.tolist(),
colorscale='Magma',showscale=True).update_yaxes(autorange="reversed"
))
出力
付録・参考文献
まとめ
とてもしっくりするものができました。
ホバーしたら、何と何の相関係数か出るようなコードを追加してみたいですね。
今回のコードはGithubに格納してあります
Discussion