我如何从文本中绘制这些数据?

时间:2017-11-30 11:05:07

标签: python c++ python-2.7 matplotlib

我希望使用python进行this graph,其中文本文件中的数据如下所示(每行代表当天的数据,显示5天的数据):

-110 -108 -95 -92 -88 -87 -85 -75 -73 -69 -67 -59 -51 -49 -47 -42 -39 -35 -36 -36 -32 -27 -29 - 32个
-30 -23 -34 -33 -29 -25 -16 -18 -16 -17 -16 -11 -9 -13 -14 -17 -21 -20 -16 -17 -18 -15 -11 -12
-15 -12 -12 -12 -10 -14 -16 -15 -14 -12 -10 -9 -9 -9 -5 -5 -4 -6 -4 -8 -13 -17 -18 -19
-19 -20 -21 -21 -17 -14 -11 -11 -6 -3 -1 0 -1 -4 -5 -1 0 0 3 1 -5 -5 -6 -4
-3 0 1 2 1 3 1 4 12 9 6 6 8 11 14 15 18 12 5 3 5 10 12 16

问题在于,当我运行代码时,每天的数据会相互重叠。

代码如下,如何修改它以按预期工作?

from pylab import xlabel,ylabel,xlim,ylim,show,plot
from numpy import loadtxt

data = loadtxt("2016_1.txt",float)
x = range(1,6)
y = data[:,1]
for i in range(1,23):
    y= data[:,i+1]
    plot(x,y)
    xlim(0,6)
    ylim(-120,100)       
show()

这是我运行时得到的结果:Output

1 个答案:

答案 0 :(得分:0)

问题是该图被称为23次并且所有时间,x轴被限制为5个单位,y轴被覆盖,因此有23个不同的图。

解决方案是将y附加到单个大型数组中,然后绘制该数组。 请参阅以下示例代码:

from pylab import xlabel,ylabel,xlim,ylim,show,plot

from numpy import loadtxt

import numpy as np

data = loadtxt("2016_1.txt",float)
#x = range(1,6) ## not needed
y = data[:,1]
z = y

for i in range(1,23):
    y= data[:,i+1]
    z = np.append(z,y) ## append y to z to create an entire range of values

plot(z)
#xlim(0,6)  ## commented this to cover entire range
ylim(-120,100)       
show()