Python 您如何使用“cmap”来显示;“第三轴”;在matplotlib中?
我有一些数据,比如Python 您如何使用“cmap”来显示;“第三轴”;在matplotlib中?,python,matplotlib,plot,Python,Matplotlib,Plot,我有一些数据,比如y=[5,3,1,9,4,3,4,5,7,8,8,3,2,9,5,3,6,9,9,6]我想在散点图中以给定的顺序绘制这些值。使用matplotlib,右“几何体”由plt.scatter(范围(len(y)),y)给出。然而,这些数据是分组的。前五个数据点在第一组中,第二个数据点在第二组中,等等。我有一个存储组标签的列表组=[1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,5,5,5] 我现在想要做的是与plt.scatter(range(len(y
y=[5,3,1,9,4,3,4,5,7,8,8,3,2,9,5,3,6,9,9,6]
我想在散点图中以给定的顺序绘制这些值。使用matplotlib,右“几何体”由plt.scatter(范围(len(y)),y)
给出。然而,这些数据是分组的。前五个数据点在第一组中,第二个数据点在第二组中,等等。我有一个存储组标签的列表<代码>组=[1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,5,5,5]
我现在想要做的是与plt.scatter(range(len(y)),y)具有相同的绘图,但是在绘图中第一组是蓝色的,第二组是红色的,第三组是绿色的,第四组是黑色的,第五组是紫色的。实际上,这就像使用颜色表示第三个轴,沿着该轴测量数据。我看到了一个解决方案,您只需调用plot.scatter
五次,但出于几个原因,我想尝试使用cmap
参数来实现这一点
我试过了
import matplotlib.pyploy as plt
y = [5,3,1,9,4, 3,4,5,7,8, 8,3,2,9,5, 3,6,9,9,6]
group = [1,1,1,1,1, 2,2,2,2,2, 3,3,3,3,3, 4,4,4,4,4, 5,5,5,5,5]
plt.scatter(range(20), y, c=group, cmap=['b','r','g','black','magenta'])
但这不起作用。我试着阅读如何使用
cmap
,但我发现的每个示例要么与我的数据结构有点不一致,要么非常复杂。我可以重新构造数据以适应这些示例,但有些事情告诉我应该有一个更简单的方法。您的示例不清楚-您有四个组和五个数据点,或者有五个组和四个数据点。无论如何,您要么使用a,要么必须注册:
样本输出:
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
y = [5,3,1,9, 4,3,4,5, 7,8,8,3, 2,9,5,3, 6,9,9,6]
group = [1,1,1,1, 2,2,2,2, 3,3,3,3, 4,4,4,4, 5,5,5,5]
my_cmap = ListedColormap(['b','r','g','black','magenta'])
plt.scatter(range(len(y)), y, c=group, cmap=my_cmap)
plt.show()