pyplotの散布図グラフでマーカーに文字を使う方法
Posted On 2018-07-07
Pythonのグラフ(matplotlib.pyplot)で散布図をプロットする際に、マーカーに「a, b, c」のような文字を用いる方法を解説します。
コード
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(45)
data_a = np.c_[np.random.randn(20)+2, np.random.randn(20)+2]
data_b = np.c_[np.random.randn(20)+3, np.random.randn(20)*0.5+1]
data_c = np.c_[np.random.randn(20)*0.5+4, np.random.randn(20)+3]
plt.scatter(data_a[:,0], data_a[:,1], color="red", marker="$a$")
plt.scatter(data_b[:,0], data_b[:,1], color="green", marker="$b$")
plt.scatter(data_c[:,0], data_c[:,1], color="blue", marker="$c$")
plt.show()
以下のようなグラフができます。
マーカーに「a,b,c」と表示できました。ポイントはこのmarkerの部分です。
plt.scatter(data_a[:,0], data_a[:,1], color="red", marker="$a$")
「$」で囲んだ部分はTexの数式表記となります。なので$y=ax+b$とすればそのまま数式が出てきます(マーカーのサイズが小さすぎて潰れて上手く表示できないかもしれません)。
文字ではなく数字をマーカーとしたい場合も、「$」で囲まれた「a」を「1」とすればいいだけです。簡単ですね。
参考:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html
Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内
技術書コーナー
北海道の駅巡りコーナー