绘制不同长度
的两个数组所以我有一些数据绘制不同长度
import pyfits
import matplotlib.pyplot
a = pyfits.getdata('data.fits')
x = a['time']
y = a['flux']
我有在我的数组包含NaN值的一些数据的问题。要摆脱他们,我做了以下内容:
x = x[numpy.logical_not(numpy.isnan(x))]
y = y[numpy.logical_not(numpy.isnan(y))]
从阵列x
和y
删除所有NaN值。问题是x
和y
不包含相同数量的NaN值。
这样:
len(y) = 4275
而:
len(x) = 4313
我希望能够做到这一点:
pyplot.plot(x,y)
但与试图绘制阵列的一个问题不同的尺寸。有没有办法可以做到这一点?
你怎么得到你的数据图?我会假设在进口你会有x或y为0,这样每个x都有一个合适的y?
您可以压缩的两个数组,并放弃任何一点(x, y)
情形之一x
或y
是NaN
(我想这更有意义)。现在我对numpy不熟悉,或者它提供了一个简短的方法来做到这一点,您可能需要自己实现它。
这是一个好点 - 如何在图上绘制'(x,y)',其中'x'和'y'中的一个或两个都是'NaN'? – 2012-07-31 22:58:19
我不明白你的意思是什么。我对编程相当陌生(我有约7周的时间)。 – 2012-07-31 22:58:39
@DaxFeliz作为一个例子,zip([1,2,3],[10,20,30])= [(1,10),(2,20),(3,30)]''。我在这里概念上讲话,所以坐标被分组为点。是否需要实际压缩这两个列表取决于您如何实现它。 – sxu 2012-07-31 23:03:29
对不起。我对它进行了编辑,以便更清楚我想要做什么。 – 2012-07-31 22:57:41
什么是具有错误x或错误y坐标的数据示例? – Shawn 2012-07-31 23:00:02
好吧,假设x = [5000,5400,3200,NaN,NaN,6670,5000,NaN] 但y = [Nan,430,Nan,550,NaN,800,700,300] – 2012-07-31 23:01:17