我正在尝试通过将多个文本文件中的数据导入单个图形(多条线)来绘制图形。为此,我编写了以下代码:
import glob
import matplotlib.pyplot as plt
import numpy as np
filenames=glob.glob("FHGM3168-01G2-*#1.txt")
for f in filenames:
print(f)
data = np.loadtxt(f, skiprows=12)
plt.figure(figsize=(8,6), dpi=100, frameon=True, clear=False)
plt.plot(data[:,0],data[:,1])
plt.axis([-20000, 20000, -0.3, 0.3])
plt.axvline(x=0, color="black", linestyle='-')
plt.axhline(y=0, color="black", linestyle='-')
plt.title("Test")
plt.xlabel("Field (G)")
plt.ylabel("Moment(memu)")
plt.legend()
plt.show()
上面代码的问题是我不能在单个图形中绘制数据。因为当我导入50个文本文件时,我会得到50个单独的图形。有人能帮我纠正一下代码吗?
发布于 2018-06-20 05:00:38
试试这样的东西
plt.figure(figsize=(8,6), dpi=100, frameon=True, clear=False)
plt.axis([-20000, 20000, -0.3, 0.3])
for f in filenames:
print(f)
data = np.loadtxt(f, skiprows=12)
plt.plot(data[:,0],data[:,1])
plt.axvline(x=0, color="black", linestyle='-')
plt.axhline(y=0, color="black", linestyle='-')
plt.title("Test")
plt.xlabel("Field (G)")
plt.ylabel("Moment(memu)")
plt.legend()
plt.show()
发布于 2018-06-20 04:57:33
在for循环(plt.figure()等)外部初始化图形。如果您需要plt.show(),请在循环之后执行。
https://stackoverflow.com/questions/50936819
复制相似问题