こしあん
2018-07-07

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

Pocket
LINEで送る
Delicious にシェア

2.4k{icon} {views}

新刊情報

技術書典8の新刊『モザイク除去から学ぶ 最先端のディープラーニング』(A4・195ページ)好評通販中です! 機械学習の入門からGANの最先端までを書いたおすすめの本となっています! Boothで試し読みできます。情報まとめ・質問用GitHub



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


新刊情報

技術書典8の新刊『モザイク除去から学ぶ 最先端のディープラーニング』好評通販中(A4・195ページ)です! Boothで試し読みもできるのでよろしくね!


Pocket
LINEで送る

Add a Comment

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