この記事では、Pythonで matplotlib を使って散布図を描画する方法を解説します。
散布図は、縦軸と横軸の2つの項目で量を計測し、分布を表現するために使うグラフです。具体的には以下のような感じのグラフです。
基本的な matplotlib の使い方は以下の記事を参照してください。
それでは、散布図の使い方を見ていきましょう!
散布図を描画する
散布図を描画するには matplotlib.pyplot の scatter() 関数を使います。
import matplotlib.pyplot as plt plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
2つのデータ(イテラブル)を渡すことで簡単に散布図を描画できる。
import matplotlib.pyplot as plt import numpy as np # 横軸, 縦軸のデータ x, y = np.random.rand(2, 100) # 散布図の作成 plt.scatter(x, y) # 表示 plt.show()
複数の散布図
scatter() を複数回呼び出すことで異なったデータの散布図を同じグラフに描画できる。
import matplotlib.pyplot as plt import numpy as np # 複数のデータ x1, y1, x2, y2 = np.random.rand(4, 100) # 散布図の作成 plt.scatter(x1, y1, alpha=0.5) plt.scatter(x2, y2, alpha=0.5) # 表示 plt.show()
このままではわかりにくいので alpha で透過させたり、凡例を配置したりしましょう!
import matplotlib.pyplot as plt import numpy as np x1, y1, x2, y2 = np.random.rand(4, 100) # alpha と label を設定 plt.scatter(x1, y1, alpha=0.5, label='data1') plt.scatter(x2, y2, alpha=0.5, label='data2') # 設定したラベルで凡例を配置 plt.legend() # 表示 plt.show()
点の加工
matplotlib には、グラフを見やすくするために様々なオプションが用意されています。試しに簡単なグラフのオプションを変更してみて、どのようなものがあるか確認していきましょう!
ここでは以下のようなグラフを使います。
import matplotlib.pyplot as plt import numpy as np # データの用意 x, y = np.random.rand(2, 100) # 散布図の作成 plt.scatter(x, y) # 表示 plt.show()
点の色
点の色を color で変更できます。
plt.scatter(x, y, color='red')
点のサイズ
点のサイズを s で変更できます。
plt.scatter(x, y, s=300)
点の形
点の形を marker で変更することができます。
plt.scatter(x, y, marker='P')
使用できるマーカーは以下の記事を参考にしてください。
Linkmatplotlib.markers — Matplotlib 3.5.1 documentation
枠線の変更
枠線の幅を linewidths、色を edgecolors で変更できます。
plt.scatter(x, y, linewidths=2, edgecolors='red')
まとめ
この記事では、matplotlib を使って散布図を描画する方法を解説しました。
散布図を使うことでデータの相関関係を視覚的に捉えることができます。それぞれの要素の変動がどう関係しているか知りたい場合に使ってみましょう!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ


