こしあん
2018-07-07

pyplotの散布図グラフでマーカーに文字を使う方法


10.7k{icon} {views}


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の中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です