我是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))用红色打印有没有办法以这种方式指定颜色?我还没有遇到类似的问题。
我非常感谢任何提示或帮助!
答案 0 :(得分:2)
使用itertools.cycle
循环颜色,并在循环中用元组压缩它们:
for (xe, ye), color in zip(zip(x, y), itertools.cycle(['blue', 'red'])):
pyplot.scatter([xe] * len(ye), ye, color=color)