当前位置:  开发笔记 > 编程语言 > 正文

Python Scatter Plot,每个X都有多个Y值

如何解决《PythonScatterPlot,每个X都有多个Y值》经验,为你挑选了1个好方法。

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



1> fjarri..:

如何为每个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')

在此输入图像描述

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有