【はじめに】
今回は、Matplotlibのmatplotlib.pyplot.scatterメソッドの引数を一覧にしました。
また、実際に引数を使用して基本的な散布図の作成方法も紹介します。
使えるようになると作成できるグラフの種類の幅が広がるので、この機会にマスターしていきましょう。
本記事の内容
- matplotlob.pyplot.scatterの引数一覧
- 基本的な散布図を作成する
- サイズ、色、不透明度、線の太さ、色を指定する
- タイトル、ラベル、グリッド線を表示する
- カラーマップを指定して、値に応じてマーカーを着色する
【matplotlob.pyplot.scatterの引数一覧】
引数 | 指定する値 |
---|---|
x, y | グラフに出力するデータ |
s | サイズ (デフォルト値: 20) |
c | 色、または、連続した色の値 |
marker | マーカーの形 (デフォルト値: ‘o’= 円) |
cmap | カラーマップ。c が float 型の場合のみ利用可能 |
norm | c を float 型の配列を指定した場合のみ有効。正規化を行う場合の Normalize インスタンスを指定。 |
vmin | 正規化時の最小値。 指定しない場合、データの最小値。norm にインスタンスを指定した場合、vmin の指定は無視。 |
vmax | 正規化時の最大値。 指定しない場合、データの最大値。norm にインスタンスを指定した場合、vmax の指定は無視。 |
alpha | 透明度。0(透明)~1(不透明)の間の数値を指定。 |
linewidths | 線の太さ。 |
edgecolors | 線の色。 |
【基本的な散布図を作成する】
使用するデータは、seabornのライブラリの中から、iris(アヤメのサンプルデータ)を使用します。
import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib
%matplotlib inline
iris = sns.load_dataset('iris')
iris.head()
sepal_length | sepal_width | petal_length | petal_width | species | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa | |||||||
1 | 4.9 | 3 | 1.4 | 0.2 | setosa | |||||||
2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa | |||||||
3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa | |||||||
4 | 5 | 3.6 | 1.4 | 0.2 | setosa |
x軸とy軸にデータを指定して散布図を作成する | x, y
x軸にガクの長さ(sepal_length)、y軸にガクの幅(sepal_width)を指定して散布図を作成します。
x = iris['sepal_length']
x.head()
0 5.1
1 4.9
2 4.7
3 4.6
4 5.0
Name: sepal_length, dtype: float64
y = iris['sepal_width']
y.head()
0 3.5
1 3.0
2 3.2
3 3.1
4 3.6
Name: sepal_width, dtype: float64
# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(10,8))
plt.scatter(x ,y)
【サイズ、色、不透明度、線の太さ、色を指定する】
サイズ、色、不透明度、線の太さ、色を指定して散布図を作成する
s, c, alpha, linewidths, edgecolors
# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(10,8))
plt.scatter(x ,y, s=200, c='pink', alpha=0.5, linewidths=2, edgecolors='red')
ポイント
引数alpha
を指定することで、データの重なる部分が分かりやすくなります。
マーカーを指定して散布図を作成する | marker
マーカーに星印(’*’)を指定してみます。
# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(10,8))
plt.scatter(x ,y, s=200, marker='*')
ポイント
引数markerで指定できる種類は次のものがあります。
marker | description |
---|---|
“.” | point |
“,” | pixel |
“o” | circle |
“v” | triangle_down |
“^” | triangle_up |
“<“ | triangle_left |
“>” | triangle_right |
“1” | tri_down |
“2” | tri_up |
“3” | tri_left |
“4” | tri_right |
“8” | octagon |
“s” | square |
“p” | pentagon |
“P” | plus (filled) |
“*” | star |
“h” | hexagon1 |
“H” | hexagon2 |
“+” | plus |
“x” | x |
“X” | x (filled) |
“D” | diamond |
“d” | thin_diamond |
“ | ” | vline |
“_” | hline |
0 (TICKLEFT) | tickleft |
1 (TICKRIGHT) | tickright |
2 (TICKUP) | tickup |
3 (TICKDOWN) | tickdown |
4 (CARETLEFT) | caretleft |
5 (CARETRIGHT) | caretright |
6 (CARETUP) | caretup |
7 (CARETDOWN) | caretdown |
8 (CARETLEFTBASE) | caretleft (centered at base) |
9 (CARETRIGHTBASE) | caretright (centered at base) |
10 (CARETUPBASE) | caretup (centered at base) |
11 (CARETDOWNBASE) | caretdown (centered at base) |
【タイトル、ラベル、グリッド線を表示する】
グラフのタイトル、X 軸、Y 軸の名前 (ラベル)、グリッド線を表示してグラフを作成する
# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(10,8))
# タイトルを表示します。
plt.title('ガクの長さとガクの幅の散布図')
# X軸のラベルを表示します。
plt.xlabel('sepal_length')
# Y軸のラベルを表示します。
plt.ylabel('sepal_width')
# グリッドを表示します。
plt.grid(True)
plt.scatter(x ,y)
【カラーマップを指定して、値に応じてマーカーを着色する】
引数s
の値の大小に応じて、色の濃淡やグラデーションで表現することができます。
引数c
にfloat型を指定した場合のみに使用することが出来ます。
カラーマップを指定して散布図を作成する | cmap
引数c
にガクの長さ(変数x)を指定して、ガクの長さによって散布図の色にグラデーションをつけます。
# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(10,8))
# cにfloat型を指定
plt.scatter(x, y, c=x, cmap='Blues')
# カラーバーを表示
plt.colorbar()
正規化における最大値 (8.0)、最小値 (2.0) を指定 | vmax, vmin
先ほどの散布図では、データの値が小さいほど、グラデーションが薄すぎて少し見にくくなっています。
引数vmax
とvmin
に最大値と最小値を指定して、色の濃淡を調整します。
# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(10,8))
# cにfloat型を指定
plt.scatter(x, y, c=x, cmap='Blues', vmax=8.0, vmin=2.0)
# カラーバーを表示
plt.colorbar()
ポイント
- 右側のカラーバーの目盛が
vmax
とvmin
で指定した値に変わっています。 - X軸とy軸に表示されている目盛の最小値と最大値に合わせると色の濃淡を調整しやすいと思います。
【さいごに】
今回は、Matplotlibのmatplotlib.pyplot.scatter
メソッドの引数を紹介しました。
引数c
とcmap
は少し慣れが必要だと思いますが、データの値によってグラデーションを表現することで綺麗なグラフを描画することが出来ます。この機会に、覚えてしまいましょう。
また、使用したCSVファイルやJupyter NotebookはGitHubに公開しています。
Jupyter Notebookは下記コマンドでダウンロードできるので、自由に使って是非練習してみてください。
$ curl https://raw.githubusercontent.com/nakachan-ing/python-references/master/Matplotlib%26Seaborn/matplotlib.pyplot.scatterの引数.ipynb -O
コメント