【Python】matplotlibのscatter()を使って散布図を描画しよう!

今回はmatplotlibのscatter()関数を使った散布図の描画について解説しようと思います!

目次

scatter()関数を使って散布図をしよう!

基本形

まずは一番シンプルな基本形です。

以下、サンプルコードとそれを実行して得られた散布図とグラフです。

import numpy as np
import matplotlib.pyplot as plt

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

plt.scatter(x, y)
plt.show()
(実行結果)

簡単にコードの内容について説明します。

4-5行目で0以上1未満の浮動小数点型の乱数を100個ずつ生成して変数xとyに格納しています。

そして7行目で横軸に変数x、縦軸に変数yが描画されるようにplt.scatter()を使い、8行目で描画した内容を別ウィンドウで表示させています。

散布図の色を変える

散布図の色を変えるにはscatter()の引数に”color”を追加します。

以下、散布図の色を赤色に変更するときのコードと実行結果です。

plt.scatter(x, y, color="red")
(実行結果)

重ね書きをして色分けする

重ね書きをして色分けするにはplt.show()を実行する前に重ねて描画したい散布図をscatter()で描きます。

以下、2つの散布図を色分けして重ね書きするときのコードと実行結果です。

import numpy as np
import matplotlib.pyplot as plt

x_blue = np.random.rand(100)
y_blue = np.random.rand(100)

x_red = np.random.rand(100)
y_red = np.random.rand(100)

plt.scatter(x_blue, y_blue, color="blue")
plt.scatter(x_red, y_red, color="red")
plt.show()
(実行結果)

ちなみにグラフにラベルを表示したい場合は上記コードの10行目以降を次のように書き換えてください。

このコードではscatter()の引数labelに各データの内容を文字列で与えてplt.legend()で表示しています。

plt.scatter(x_blue, y_blue, color="blue", label="data_blue")
plt.scatter(x_red, y_red, color="red", label="data_red")
plt.legend()
plt.show()
(実行結果)

その他のオプション

ここまでは多くの人が使うであろうcolorとlabelという引数について解説しましたが、scatter()関数には他にもオプションとなる引数があります。

以下、引数の一覧と簡単な解説です。

plt.scatter(x, y, s, color, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors)
引数内容
x, yグラフに出力するデータ
sマーカーサイズ(デフォルト値:20 )
color色、または連続した色の値
markerマーカーの形(デフォルト値:”o”=円)
cmapカラーマップ(colorがfloat型の場合のみ利用可能)
norm正規化を行う場合のNormalizeインスタンス(colorがfloat型の場合のみ利用可能)
vmin, vmax正規化時の最大・最小値
alpha透明度(0:透明~1:不透明の間の数値を指定)
linewidth線の太さ
edgecolors線の色

まとめ

今回はmatplotlibのscatter()関数を使った散布図の描画について解説しました。

この記事で不明な点や気になるところがあれば下のコメント欄までお願いします。それではまた!

よかったらシェアしてね!

この記事を書いた人

えだはのアバター えだは ITエンジニア

2001年生まれの♂。愛知県出身。
国立大学の情報学科を卒業後、某ユーザ系IT企業に就職。
2022年に当ブログ「えだはの部屋」を開設。
ブログ収益は100円〜1000円の間で常に低空飛行をしており、基本赤字。
将来の夢は億万長者。

コメント

コメントする

目次