【问题标题】:Matplot multiple lines ploting in pythonMatplotlib在python中绘制多行
【发布时间】:2016-12-06 16:49:06
【问题描述】:

大家!我需要使用 matplotlib(不一定)从单个图中的四个数组中绘制多条线。目前我的代码是

plt.plot(PTime,PReactions,NYTime,NYReactions,LTime,LReactions,SFTime,SFReactions)
plt.show()      

PTime 和 PReactions 是数组的名称等等。
这是上面代码的输出:

但我不想要这种类型的图表。我想要多行代表不同的数组(不同的数据)。
我想要类似这样的结果:

【问题讨论】:

  • 通常,您可以浏览Matplotlib Gallery,找到has a feature you want 的示例,弄清楚他们是如何做到的,然后适应。还有the Pyplot tutorial,当然还有the documentation本身。
  • 你能提供一个你的两个向量的最小例子吗?
  • 有没有可能,您刚刚拥有强烈振荡的数据,因此您有这样的印象,即它被绘制为区域而不是线条?如果是这种情况,请尝试放大很多,也许您将能够识别单独的线条。
  • @MarkusDutschke 并非如此。数据没有波动。水平线包含递增排序的时间,垂直线包含范围从 0 到 3500 的数字。它包含 7 天的每一秒的数据,每一秒包含一些在这里绘制的值。这里绘制的数据数量很大,即两个轴上都有 60 万。数据存储在数组中,正在绘制,但他的输出不是我想要的。
  • @wwii 横轴包含时间数组,纵轴包含上面评论中解释的某个数字。

标签: python matplotlib graph


【解决方案1】:

最小的工作示例:

import matplotlib.pyplot as plt
import numpy as np

a=np.linspace(0, 1, 10)
b=np.linspace(0, 2, 10)
c=np.linspace(0, 3, 10)
d=np.linspace(0, 4, 10)

plt.plot(b,a)
plt.plot(c,a)
plt.plot(d,a)

plt.show()

为您提供:

【讨论】:

  • 你能建议它如何在大尺寸数组上工作吗?我的意思是我想从数组中生成行。就像我有一个“数组”,我会把它放在 np.linespace 的哪里?
  • 对不起,我没明白你的问题:(。a,b,c,d 是数组,因为函数 np.linspace 返回数组。a 存储 x 值,b,c,d 存储y 值。目前它们的长度为 10,但您可以增加该值。这是一些 Python 教程,我强烈建议您这样做:docs.python.org/3/tutorial/index.html
  • 我有自己的数组。无需使用 np.linspace。它将如何工作?
【解决方案2】:

您的数据以错误的顺序显示。一定是X, Y:

plt.plot(PReactions, PTime)
plt.plot(NYReactions, NYTime)
plt.plot(LReactions, LTime)
plt.plot(SFReactions, SFTime)
plt.show()

【讨论】:

  • 上面的代码工作得很好,但我不想要它生成的输出。请看图片
  • 啊,我看到你的问题了。我想你混淆了 X 和 Y 值
  • 不,我没有。 X 和 Y 值符合逻辑。当前结果是i.stack.imgur.com/BzmUx.png this,我想要i.stack.imgur.com/B0Okw.png this。你能帮忙吗?
  • 我想补充的一点是,数组的长度最小为 1 lac。
  • @HamidAli 你能详细说明一下为什么 languitar 的这个解决方案不能满足你的要求吗?还要清楚地说明您想要哪个数组作为水平和垂直坐标。是什么让你的应该怎么看图片与你所拥有的不同?是横轴上的日期吗?是值的颜色吗?
猜你喜欢
  • 1970-01-01
  • 2010-11-26
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-30
  • 2019-10-17
  • 2018-02-01
相关资源
最近更新 更多