matplotlibで様々なデザインの散布図を描画する方法まとめ

今回はmatplotlibで散布図を生成する方法を見ていきましょう。散布図のことを英語でscatter plotと言います。matplotlib.pyplotクラスには、scatterが用意されており、誰でも簡単に描画することができます。

今回は公式のドキュメントを参考に進めていきます。

参考 pyplot.scatterMatplotlib 1.5.1 documentation

時間がない方のためのscatter引数まとめ

x, y グラフに出力されるデータ
s サイズ(デフォルト: 20)
c 色、または連続した色の値
marker マーカーの形(デフォルト値: o)
cmap カラーマップ(cがfloat型の場合のみ利用可能)
norm cをfloat型の配列を指定した場合のみ有効。正規化を行う場合のNormalizeインスタンスを指定
vmin, vmax 正規化時の最大、最小値(指定しない場合、データの最大・最小値。normにインスタンスを指定した場合、vmin, vmaxの指定は無視される)
alpha 透明度(0[透明]~1[不透明]の間の数値を指定)
linewidths 線の太さ
edgecolors 線の色

散布図描画をpyplot.scatterでマスターする

pyplot.scatterで基本的な散布図を描画する

numpy.random.rand()で乱数を生成したサンプルで描画しました。引数がx, yのみの場合にはその他デザインはデフォルト値になります。Jupyter Notebookをお使いの方は、1行目の%matplotlib inlineを入力してください。

Python
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
 
# 乱数を生成する
x = np.random.rand(100)
y = np.random.rand(100)
 
# 散布図を描画する
plt.scatter(x, y)


引数でグラフをデザインする

サイズ、色、透明度、線のサイズ、線の色を指定して描画する。

Python
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

plt.scatter(x, y, s=300, c="orange", alpha=0.7, linewidths="1",
            edgecolors="yellow")


引数でマーカーを変えてみる

次はマーカーの形を変えてみましょう。デフォルトでは丸の形になっていますが今回はバツ印にしてみたいと思います。バツ印はxで表します。

Python
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

plt.scatter(x, y, s=300, c="orange", alpha=0.7, linewidths="1",
            edgecolors="yellow", marker="x")


タイトルやラベル名を編集してみる

グラフのタイトル、X軸のラベル名、Y軸のラベル名、グリッド線を付け足してみましょう。グリッド線はFalseにすると消えます。

Python
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

plt.scatter(x, y, s=300, c="orange", alpha=0.7, linewidths="1",
            edgecolors="yellow", marker="x")

# タイトル
plt.title("This is TITLE!")

# X軸のラベル名
plt.xlabel("x axis")

# Y軸のラベル名
plt.ylabel("y axis")

# グリッド線をつける
plt.grid(True)

MEMO
matplotlibのデフィルトでは、日本語対応されていません。もし簡単に日本語対応する方法を知りたい方はこちらをご覧ください!
【超簡単】たったの2ステップで matplotlib の日本語表記を対応させる方法

値の大きさによって色をグラデーションにする

引数cの値によって色を変化させることができます。

Python
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(100)
y = np.random.rand(100)

# 乱数を100件生成する
value = np.random.rand(100)
 
# 散布図を表示する
plt.scatter(x, y, s=50, c=value, cmap='Blues')
 
# カラーバーを表示する
plt.colorbar()


まとめ

matplotlibのscatterを用いた散布図の描き方を解説してきました。最後にこの記事のまとめを書いておきます。

覚えておきたいポイント
  • plt.scatter()で描画できる
  •  サイズ、色、透明度、線のサイズ、線の色などのデザイン変更可能
  • マーカーの形も変更可能
  • plt.title()でグラフにタイトルをつける
  • plt.grid()でグリッド線をつける
  • plt.colorbar()でカラーバーを表示する