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

how can i plot these data from the text?

本文关键字:数据 绘制 文本      更新时间:2023-10-16

我想使用python像此图一样制作,其中文本文件中的数据看起来像这样(每行代表当天的数据,显示了5天的数据):p> -110 -108 -95 -92 -88 -87 -87 -85 -75 -73 -73 -69 -67 -59 -51 -51 -49 -47 -42 -42 -42 -39 -35 -36 -36 -36 -36 -32 -27 -27 -27 -29 -29-32
-30 -23 -34 -33 -29 -25 -16 -16 -16 -16 -17 -16 -16 -11 -13 -13 -14 -17 -17 -21 -21 -21 -16 -16 -17 -17 -18 -15 -15 -15 -12
-15 -12 -12 -12 -12 -14 -14 -16 -15 -14 -12 -12 -12 -11 -9 -9 -9 -5 -5 -4 -4 -4 -4 -8 -8 -13 -13 -17 -18 -18 -19
-19 -20 -21 -21 -17 -14 -14 -11 -11 -11 -6 -3 -1 0 -1 -1 -5 -1 0 0 3 1 -5 -5 -6 -4
-3 0 1 2 1 3 1 4 12 9 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

问题是该图被称为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()