plotly
plotly
plotlyの素晴らしさに惚れたので備忘
こうやって出力されたグラフをぐりぐり動かせたりします。
便利そうなグラフ垂れ流し
import pandas as pd import numpy as np import plotly.express as px import plotly.graph_objects as go import plotly.figure_factory as ff
アヤメのデータを使います。
# アヤメのデータセットを格納
df = px.data.iris()
df # (萼とは、植物用語の一つで、花冠の外側の部分のこと) # sepal_length: 萼(がく)片の長さ # sepal_width: 萼(がく)片の幅 # petal_length: 花弁の長さ # petal_width: 花弁の幅 # species: アヤメの種別 # species_id: アヤメの種別ID
# 散布図の表示 fig = px.scatter(df, x="sepal_width", y="sepal_length") fig.show()
# 色づけ、マーカーサイズを調整、ツールチップに項目追加 fig = px.scatter( df, x="sepal_width", y="sepal_length", color="species", #種別ごとに色づけ size='petal_length', #花弁の長さをマーカーサイズの大きさに反映 hover_data=['petal_width'] #ツールチップに花弁の幅を追加 ) fig.show()
# 色づけ、マーカーサイズを調整、ツールチップに項目追加 fig = go.Figure(data=go.Scatter( x=df["sepal_width"], y=df["sepal_length"], # hover_data=['petal_width'], #ツールチップに花弁の幅を追加 mode='markers', marker=dict( size=16, color=df["petal_length"], # 花弁の長さによって色分け colorscale='Viridis', # plotly colorscalesのひとつを設定 showscale=True ) )) fig.show()
# 散布図行列
fig = px.scatter_matrix(df)
fig.show()
# 色付き散布図行列 fig = px.scatter_matrix(df, dimensions=["sepal_width", "sepal_length", "petal_width", "petal_length"], color="species") fig.show()
# ヒートマップ
fig = px.imshow(df.corr())
fig.show()
# 注釈付きヒートマップ z = df.corr() fig = ff.create_annotated_heatmap( z.values, x=z.columns.tolist(), y=z.index.tolist(), annotation_text=np.around(z.values, decimals=2) ) fig.show()
# 3D散布図 fig = px.scatter_3d( df, x='sepal_length', y='sepal_width', z='petal_width', color='species') fig.show()
# 色付き、記号分け fig = px.scatter_3d( df, x='sepal_length', y='sepal_width', z='petal_width', color='petal_length', symbol='species' ) fig.show()
# 様々な調整 fig = go.Figure(data=[go.Scatter3d( x=df['sepal_length'], y=df['sepal_width'], z=df['petal_width'], mode='markers', marker=dict( size=4, color=df['petal_length'], colorscale='Viridis', opacity=0.8 ) )]) fig.update_layout( scene = dict(xaxis_title='sepal_length', yaxis_title='sepal_width', zaxis_title='petal_width'), margin=dict(l=0, r=0, b=0, t=0)) fig.show()