绘制2 .dat文件,字符串文件句柄错误

时间:2016-06-08 23:01:09

标签: python matplotlib

您好我正在尝试在同一个地块上绘制两个.dat文件的数据。 当我尝试时,我收到一条错误消息。我在代码中准确显示了它来自下方的位置。它与字符串或文件句柄有关。我是python的新手,不知道如何解决这个问题。

我导入了两个.dat文件,它们都是2列的文件。 然后我用指定的字体大小定义我的x,y轴的名称,然后对标题执行相同的操作。然后我尝试在1个图上绘制两个.dat文件。

import numpy as np
from matplotlib import pyplot as plt

fig = plt.figure()

#unpack file data

dat_file = np.loadtxt("file1.dat", unpack=True)
dat_file2 = np.loadtxt("file2.dat", unpack=True)

plt.xlabel('$x$', fontsize = 14)
plt.ylabel('$y$', fontsize = 14)
plt.title('result..', fontsize = 14)

plot1 = plt.plotfile(*dat_file, linewidth=1.0, marker = 'o') #error message from this line
plot2 = plt.plotfile(*dat_file2, linewidth=1.0, marker = 'v') #error message from this line

plt.plotfile([plot1,plot2],['solution 1','solution 2'])

plt.show()

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您必须使用plot函数进行绘图:

...
plot1 = plt.plot(*dat_file, linewidth=1.0, marker = 'o', label='solution 1') 
plot2 = plt.plot(*dat_file2, linewidth=1.0, marker = 'v', label='solution 2') 
ax = plt.gca()
ax.legend(loc='best')
plt.show()

enter image description here

plotfile需要设置分隔符(默认为',')和文件名不是数组,您必须这样写:

plot1 = plt.plotfile("file1.dat", linewidth=1.0, marker = 'o', delimiter=' ', newfig=False,  label='solution 1')
plot2 = plt.plotfile("file2.dat", linewidth=1.0, marker = 'v', delimiter=' ', newfig=False,  label='solution 2') 
plt.title("Result")
plt.xlabel('$x$', fontsize = 14)
plt.ylabel('$y$', fontsize = 14)
ax = plt.gca()
ax.legend(loc='best')
plt.show()    

newfig=False控制新数据的绘图数据。