【问题标题】:Using a condition to plot with matplotlib使用条件绘制 matplotlib
【发布时间】:2013-04-06 08:41:19
【问题描述】:

我有一个二维数组,我需要绘制列 x 和 y,但只能在 x 的某个范围内。 我知道如何使用索引进行绘图,但我需要指定 x 的 。我有一些这样的数组,所以我试图找到一种方法来做到这一点,而不必单独查看每个数组。

这是一个例子:

array([[  4.40148390e+03,   1.13200000e+00],
       [  4.40248390e+03,   1.12200000e+00],
       [  4.40348440e+03,   1.11600000e+00],
       [  4.40448440e+03,   1.10600000e+00],
       [  4.40548490e+03,   1.09200000e+00],
       [  4.40648490e+03,   1.07700000e+00],
       [  4.40748540e+03,   1.08700000e+00],
       [  4.40848540e+03,   1.09400000e+00],
       [  4.40948580e+03,   1.10200000e+00],
       [  4.41048580e+03,   1.09500000e+00],
       [  4.41148630e+03,   1.12000000e+00]])

假设我只需要4402 < x < 4410 但我不知道索引。我可以输入类似:plot(x, y, where(4402 < x < 4410)) 的内容吗?

我觉得我在这里缺少一些明显的东西:p

【问题讨论】:

  • a[(a[:,0]>4402)&(a[:,0]<4410)]
  • @mtadd 您能否将其发布为答案(并可能添加一些解释它的文字)

标签: numpy matplotlib conditional multidimensional-array


【解决方案1】:

您可以使用 ma​​tplotlib 在 x 轴上设置限制,以免显示数据系列中的所有点。但是,我们可以按如下方式过滤您的 numpy 数组:

a = array([[ .... ]])
x = a[:,0]
y = a[:,1]

filter = (x>4402)&(x<4410)

plot(x[filter],y[filter])

【讨论】:

  • 如果这个答案被接受,这个问题应该被标记为 numpy
猜你喜欢
  • 1970-01-01
  • 2021-11-21
  • 2014-07-27
  • 2019-01-31
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 2019-06-24
相关资源
最近更新 更多