我有一个二维数组,我需要绘制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
答案 0 :(得分:5)
您可以使用 matplotlib 在x轴上设置限制,以便不显示数据系列中的所有点。但是,我们可以按如下方式过滤您的 numpy 数组:
a = array([[ .... ]])
x = a[:,0]
y = a[:,1]
filter = (x>4402)&(x<4410)
plot(x[filter],y[filter])