2017-06-13 93 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

相关问题