2017-06-13 71 views
-1

我想用python matplotlib繪製不同長度的散點圖。對於下面的數據如何在包含不同長度變量的散點圖中爲不同點指定不同的顏色?

Days = [1,2,3] 
Values = ([2,3,4,5],[3,4,5,6,7],[2,3]) 

我可以使用下面的程序繪製的所有點

w = [[Days[i]] * len(Values[i]) for i in range(len(Values))] 

x_to_plot = [item for sublist in w for item in sublist] 
y_to_plot = [item for sublist in Values for item in sublist]. 

我如何可以分配不同的顏色,以幾個點保持同一顏色的所有其他點?

+0

可以手動指定顏色,使用'plt.plot(some_points, '.R')'的紅點爲例。然後你只需要將你的數據分成你需要的兩套,並用兩種不同的顏色分別繪製它們。 – Julien

+0

如圖所示,您的程序不會繪製任何圖形。 – DyZ

回答

0

您可以使用scatter的參數c根據顏色表對點着色。例如。上色的所有點,其中y == 5 - x紅色,使用

import matplotlib.pyplot as plt 

Days = [1,2,3] 
Values = ([2,3,4,5],[3,4,5,6,7],[2,3]) 

w = [[Days[i]] * len(Values[i]) for i in range(len(Values))] 

x = [item for sublist in w for item in sublist] 
y = [item for sublist in Values for item in sublist] 

c = [0 if i+j == 5 else 1 for i, j in zip(x,y)] 
plt.scatter(x,y, c=c, cmap="bwr_r") 

plt.show() 

enter image description here

相關問題