我想比较两个自变量随时间的变化,把它们都标在一个图上。这三个变量都是数组形式的,我是从一个文本文件中提取出来的。 这就是我目前所得到的:
from pylab import *
data_ = []
with open('all_the_data.txt') as dat_:
for line in dat_:
data_.append([i for i in line.split()])
D = zip(*data_)
def f1(t):
y = D[1]
return y
def f2(t):
y = D[2]
return y
if __name__ == '__main__':
t = D[0]
A = f1
B = f2
plot(t, A, 'bo')
hold('on')
plot(t, B, 'gX')
xlabel('timestamp (unix)')
ylabel('Station population')
legend('Station 1','Station 2')
title('Variance of Stations 1 and 2')
show()
savefig('2_stations_vs_time.png')
问题是,它不起作用,我不知道为什么。我是从一个绘制两个函数的教程中得到的。
我们绘制的是数据而不是函数。所以pass
A
,B
是错误的。我想你需要做的是:我已经测试过你的
D
值是否正确,例如D = [list(range(100)), list(range(10, 110)), list(range(20, 120))]
。代码运行良好。编辑:我认为问题可能在于你如何提取数据。当您调用
A=f1
和B=f2
时,您应该编写A=f1(t)
和B=f2(t)
,以符合您构造f1
和f2
的方式。但是,为什么要这样做呢?对于绘图,我更喜欢面向对象的方法。
相关问题 更多 >
编程相关推荐