【问题标题】:how can i plot these data from the text?我如何从文本中绘制这些数据?
【发布时间】:2018-05-14 07:00:20
【问题描述】:

我想用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

【问题讨论】:

    标签: python c++ python-2.7 matplotlib


    【解决方案1】:

    问题是该图被调用了 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()
    

    【讨论】:

    • 谢谢,但我如何修改它以逐行而不是逐列计数。
    • 默认情况下 z 的元素绘制在 y 轴上。如果你想在 x 轴上绘制它们,你可以使用这样的东西: x = range(1,116) #before for 循环。 plot(z,x) #在for循环之后。
    • 非常感谢,上帝保佑你。
    猜你喜欢
    • 1970-01-01
    • 2019-06-01
    • 2017-07-25
    • 1970-01-01
    • 2018-05-31
    • 2018-04-12
    • 2020-03-03
    • 2022-09-25
    • 1970-01-01
    相关资源
    最近更新 更多