我正在尝试使用Python创建一个散点图,其中包含两个X类别"cat1""cat2",每个类别都有多个Y值.如果使用以下代码,每个X值的Y值相同,我可以使用它:
import numpy as np import matplotlib.pyplot as plt y = [(1,1,2,3),(1,1,2,4)] x = [1,2] py.plot(x,y) plot.show()
但是一旦每个X值的Y值不相同,我就会收到错误.例如,这不起作用:
import numpy as np import matplotlib.pyplot as plt y = [(1,1,2,3,9),(1,1,2,4)] x = [1,2] plt.plot(x,y) plot.show() #note now there are five values for x=1 and only four for x=2. error
如何为每个X值绘制不同数量的Y值,如何将X轴从数字1和2更改为文本类别"cat1"和"cat2".我非常感谢任何帮助!
这是我想要制作的情节类型的示例图像:
http://s12.postimg.org/fa417oqt9/pic.png
如何为每个X值绘制不同数量的Y值
只需分别绘制每个组:
for xe, ye in zip(x, y): plt.scatter([xe] * len(ye), ye)
如何将X轴从数字1和2更改为文本类别"cat1"和"cat2".
手动设置刻度和刻度标签:
plt.xticks([1, 2]) plt.axes().set_xticklabels(['cat1', 'cat2'])
完整代码:
import matplotlib.pyplot as plt import numpy as np y = [(1,1,2,3,9),(1,1,2,4)] x = [1,2] for xe, ye in zip(x, y): plt.scatter([xe] * len(ye), ye) plt.xticks([1, 2]) plt.axes().set_xticklabels(['cat1', 'cat2']) plt.savefig('t.png')