今回は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のデフィルトでは、日本語対応されていません。もし簡単に日本語対応する方法を知りたい方はこちらをご覧ください!
値の大きさによって色をグラデーションにする
引数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()でカラーバーを表示する