まずは散布図から
章の冒頭で述べたとおり、zenn の中では plotly のインタラクティブな感じが出せません。したがって、実際に動く状態をこちら(https://colab.research.google.com/drive/1RNtGqug9fVRT4uSBUBLglNpvkwVfI1ok?usp=sharing)にアップロードしていますので、そちらでご確認ください。
グラフを作成するときに、最初にやってみるのが散布図だと思います。いつものごとく iris のデータセットを用いてグラフを作成していきます。
今回はデータの編集がほぼありませんので、インポートするライブラリはこれだけです。
import plotly.express as px
import seaborn as sns
続いてデータセットの読み込みです。
iris_data = sns.load_dataset("iris")
作っていて気づいたのですが、pandas がインポートされていなくても動くんです。dataset は DataFrame なので必要だと思っていましたが、そうでもなかったですね。
散布図の作成
早速散布図を作成します。
fig = px.scatter(iris_data, x = "sepal_length", y = "petal_length" )
fig
書くのはこれだけです。引数の 1 つ目に DataFrame、x,y を次に指定するだけで描画できます。seaborn なんかよりも遥かに楽でしょう。
出力されるグラフはこんな感じです。
このページで実際に触ることができれば良いのですが、残念です。
color(hue)を設定する
seaborn の hue にあたるパラメータが color となります。今回は species を指定しましょう。
fig = px.scatter(iris_data, x = "sepal_length", y = "petal_length" , color= "species" )
fig
バブルチャート(3D)もすぐにできる
散布図の応用で、点のサイズを特定の条件に応じて変化させることができます。
fig = px.scatter(iris_data, x = "sepal_length", y = "petal_length" , color= "species", size = "petal_width" )
fig
color(hue)を量的データにする
通常 hue で設定できるデータは A,B などの質的データとなりますが、plotly では量的なデータも設定できます。その場合はその重みに応じて色が連続的に変化します。
fig = px.scatter(iris_data, x = "sepal_length", y = "petal_length" , color= "petal_width", size = "petal_width" )
fig
プロットの点の形状を変更する
プロットの点を変更することもできます。マーカーの凡例の位置が color と重複するため片方を別の位置に移動しました。
fig = px.scatter(iris_data, x = "sepal_length", y = "petal_length" , color= "petal_width", size = "petal_width", symbol= "species" )
fig.update_layout(legend=dict(x=0.01, y=0.99, xanchor='left', yanchor='top', orientation='h', ))
fig
plotly の散布図まとめ
描写するのは簡単です。なんなら、seaborn よりも簡単にできます。今回は colab で紹介をしましたが、html を生成できるため、wordpress などにも埋め込めます。
正直、WEB 関連だと無限の可能性を秘めているのかなと思っています。欠点という欠点は思いつきませんが、技術データで利用するときは細かい調整をやりづらそうなので、難があるかもしれません。