每个 X 具有多个 Y 值的 Python 散点图

标签 python matplotlib plot

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

最佳答案

How can I plot different numbers of Y values for each X value

只需分别绘制每个组:

for xe, ye in zip(x, y):
    plt.scatter([xe] * len(ye), ye)

and how can I change the X axis from being the numbers 1 and 2 to text categories "cat1" and "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')

enter image description here

关于每个 X 具有多个 Y 值的 Python 散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34280444/

相关文章:

python - 无法从 Eclipse 运行/调试 Django 的 manage.py

python - 如何从python中的wav文件绘制波形?

r - geom_errorbar 上为正均值,下为负均值

python - 带有 Pandas 数据点的线图

python - 使用 Bokeh 禁用轴上的科学记数法

Matlab,如何调整图形上的轴值(科学记数法 - 精度不够)

python 未使用 gzip 读取 gzip 文件

python twitter api 推文时间戳从 UTC 转换为 EST

python - 在 Dash 中构建仪表板

python - 如何使用 matplotlib 获取开始时间和结束时间高达毫秒的甘特图