2017-07-02 8 views
2

私はPythonには新しく、xtickごとにいくつかのy値を示す散布図を作成しようとしています。私は何らかのコードを思いつく助けになったこの質問を見つけました:Python Scatter Plot with Multiple Y values for each Xmatplotlib - scatterplot、yタプルの色を選択してください

x = [1,2,3,4] 
y = [(1,1,2,3,9),(1,1,2,4), (0.5,4), (0.1,2)] 

for xe, ye in zip(x, y): 
    plt.scatter([xe] * len(ye), ye, color=['blue', 'red']) 

plt.xticks([1, 2, 3, 4]) 
plt.axes().set_xticklabels(['5', '10', '15', '25']) 
plt.ylim(0, 1) 

plt.show() 

このコードは、たとえば、このコードは1番目のタプルのポイントを赤と青で交互に表示します。しかし、私は最初のタプル(例えば(1,1,2,3,9))のすべての点を青で、次のタプル(例えば(1,1,2,4))のすべての点を赤でこのような方法で色を指定する方法はありますか?私はまだ似たような質問に出くわしていません。

私は本当にヒントや助けに感謝します!サイクルへ

+0

最初のタプルは5つのエントリを持っていますが、あなただけの4 'X'の値を持ちます。これの期待される成果は? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest私は、各xのいくつかのy値をプロットするのが好きです(実際のコードではすべてのタプルに1000個の数字が含まれています)ので、最初のタプルは最初のxtickにプロットされ、次のタプルは次のxtickにプロットされます。異なる数の値に問題はありませんでした。ここに間違いがありますか? –

答えて

2

使用itertools.cycleあなたの色、およびループであなたのタプルでそれらのZIPファイルを作成します。y` `で

for (xe, ye), color in zip(zip(x, y), itertools.cycle(['blue', 'red'])): 
    pyplot.scatter([xe] * len(ye), ye, color=color) 
+0

素敵な、すばらしい返答をいただきありがとうございます!それは完璧です! –

関連する問題