[Matplotlib] 散布図の作成

[Matplotlib] 散布図の作成

散布図の作成

 データを散布図として可視化する場合は、Axesオブジェクトの scatter()メソッドを使用します。下のサンプルコードは、ランダムな点 (x, y) を 1000組作成して平面上にプロットします。

# https://python.atelierkobato.com/scatter/

# 平面にランダムな点をプロット

# NumPyをインポート
import numpy as np

# matplotlibをインポート
import matplotlib.pyplot as plt

# Figureを作成
fig = plt.figure()

# グリッド線の表示
plt.style.use("ggplot")

# figにAxesを1つ追加
ax = fig.add_subplot(111)

# Axesのタイトルの設定
ax.set_title('Random Plot', fontsize = 16)

# 軸ラベルの設定
ax.set_xlabel('x', fontsize = 16)
ax.set_ylabel('y', fontsize = 16)

# ランダムな点(x,y)を1000個生成
x = np.random.rand(1000)
y = np.random.rand(1000)

# Axesにグラフをプロット
ax.scatter(x, y)

# グラフを描画
plt.show()

 実行すると下のようなグラフが表示されます。

 Matplotlibで描いた散布図

 ランダムな数値の生成には numpy.random の rand()関数を使用しています。rand(x) は x 個の要素をもつ一様乱数配列を生成します。上のサンプルコードでは、x, y それぞれに rand(1000) で 1000個の乱数を与えています:

# ランダムな点(x,y)を1000個生成
x = np.random.rand(1000)
y = np.random.rand(1000)

 
 scatter()メソッドで (x, y) を Axes に表示させます:

# Axesにグラフをプロット
ax.scatter(x, y)

 

点(マーカー)の大きさを変更します

 1000 個もの点をプロットしているので、上の図ではいくつかの点が重なりあって見づらくなっています。点(マーカー)のサイズを小さくしてみましょう。点のサイズは scatter()メソッドの引数 s で指定します。コードを次のように書き換えてみてください。

# Axesにグラフをプロット
ax.scatter(x, y, s = 10)

 Matplotlibで描いた散布図 マーカーの大きさ変更
 

点(マーカー)の色を変更します

 点(マーカー)の色を変更したい場合は、scatter()メソッドの引数 color で指定します。たとえば青色にする場合には次のように記述します。

# Axesにグラフをプロット
ax.scatter(x, y, s = 10, color = "blue")

 Matplotlibで描いた散布図 マーカーの色を変更
 

点(マーカー)の種類を変更します

 scatter()メソッドの引数 marker に点(マーカー)の種類を渡すこともできます。"s" を指定すると四角形、"^" だと三角形になります。ここでは三角形にしてみましょう。サンプルコードの scatter() の引数を次のように書き換えてください。

# Axesにグラフをプロット
ax.scatter(x, y, s = 10, marker = "^")

 Matplotlibで描いた散布図 マーカーの種類を変更(三角形)

 ≫ Matplotlib でヒストグラムを作成します