我是Python的新手,我试图创建一个散点图,为每个xtick显示几个y值。我发现了这个问题,这使我想出了一些代码:Python Scatter Plot with Multiple Y values for each X

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,2,3,9))打印为蓝色,将下一个元组的所有点(例如(1,1,2,4))打印为红色。等。有没有办法以这种方式指定颜色?我还没有遇到类似的问题。

我真的很感谢任何提示或帮助!

最佳答案

使用itertools.cycle循环显示颜色,并在循环中将它们与元组一起压缩:

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

关于python - matplotlib-散点图,为y元组选择颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44874945/

10-10 06:50