3つのデータセットがあるとします。
X = [1,2,3,4]
Y1 = [4,8,12,16]
Y2 = [1,4,9,16]
私はこれを散布することができます:
from matplotlib import pyplot as plt
plt.scatter(X,Y1,color='red')
plt.scatter(X,Y2,color='blue')
plt.show()
10セットでこれを行うにはどうすればよいですか?
私はこれを検索し、私が求めているものへの参照を見つけることができました。
編集:私の質問を(うまくいけば)明確にする
散乱を複数回呼び出すと、各散乱に同じ色しか設定できません。また、私は手動でカラー配列を設定できることを知っていますが、これを行うためのより良い方法があると確信しています。私の質問は、「どのようにして、それぞれが異なる色の複数のデータセットを自動的に散布図することができますか?
それが役立つ場合は、各データセットに一意の番号を簡単に割り当てることができます。
あなたが「手動で」どういう意味か分かりません。カラーマップを選択して、カラー配列を簡単に作成できます。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.arange(10)
ys = [i+x+(i*x)**2 for i in range(10)]
colors = cm.rainbow(np.linspace(0, 1, len(ys)))
for y, c in zip(ys, colors):
plt.scatter(x, y, color=c)
またはitertools.cycle
、ループしたい色を使用して指定する独自のカラーサイクラーを作成し、使用next
して希望の色を取得することもできます。たとえば、3色の場合:
import itertools
colors = itertools.cycle(["r", "b", "g"])
for y in ys:
plt.scatter(x, y, color=next(colors))
考えzip
てみてください。最初のものと一緒に使用しない方がきれいかもしれません。
colors = iter(cm.rainbow(np.linspace(0, 1, len(ys))))
for y in ys:
plt.scatter(x, y, color=next(colors))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加