首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python散点图,每个X有多个Y值

Python散点图,每个X有多个Y值
EN

Stack Overflow用户
提问于 2015-12-15 11:03:14
回答 2查看 65.4K关注 0票数 24

我正在尝试使用Python创建一个散点图,其中包含两个X类别"cat1“"cat2”,每个类别都有多个Y值。通过使用以下代码,如果每个X值的Y值的数量相同,我就可以让它工作:

代码语言:javascript
复制
    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值的数量不同,我就会得到一个错误。例如,这不起作用:

代码语言:javascript
复制
    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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-15 11:48:55

如何为每个X值绘制不同数量的Y值

只需分别绘制每组:

代码语言:javascript
复制
for xe, ye in zip(x, y):
    plt.scatter([xe] * len(ye), ye)

以及如何将X轴从数字1和2更改为文本类别"cat1“和"cat2”。

手动设置记号和记号标签:

代码语言:javascript
复制
plt.xticks([1, 2])
plt.axes().set_xticklabels(['cat1', 'cat2'])

完整代码:

代码语言:javascript
复制
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')

票数 36
EN

Stack Overflow用户

发布于 2020-09-24 23:43:33

为了响应来自javadba的注释,我能够使用matplotlib绘制单个自变量(date)的多个因变量(新的covid案例)。

代码语言:javascript
复制
plt.xticks(rotation=90)
plt.scatter(x=dates_uk[::5], y=cases_uk[::5])
plt.scatter(x=dates_us[::5], y=cases_us[::5])
classes = ['UK New Cases', 'US New Cases']
plt.legend(labels=classes)
plt.show()

Image of what the code shows (not enough reputation to show image)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34280444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档