您好我正在尝试在同一个地块上绘制两个.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()
非常感谢你的帮助。
答案 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()
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
控制新数据的绘图数据。