Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为包含不同长度变量的散点图中的不同点指定不同的颜色?_Python_Excel_Matplotlib_Colors_Statistics - Fatal编程技术网

Python 如何为包含不同长度变量的散点图中的不同点指定不同的颜色?

Python 如何为包含不同长度变量的散点图中的不同点指定不同的颜色?,python,excel,matplotlib,colors,statistics,Python,Excel,Matplotlib,Colors,Statistics,我正在尝试使用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 = [it

我正在尝试使用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].

如何为几个点指定不同的颜色,使所有其他点保持相同的颜色

您可以使用
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()

您可以手动指定颜色,例如使用红点的
plt.plot(一些点,.r')
。然后你只需要将你的数据分成你需要的两组,并用两种不同的颜色分别绘制它们。你的程序,如图所示,不会绘制任何东西。