首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python -如何在单个图形中绘制多个文本文件中的数据

Python -如何在单个图形中绘制多个文本文件中的数据
EN

Stack Overflow用户
提问于 2018-06-20 04:55:08
回答 2查看 2K关注 0票数 -1

我正在尝试通过将多个文本文件中的数据导入单个图形(多条线)来绘制图形。为此,我编写了以下代码:

代码语言:javascript
复制
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个单独的图形。有人能帮我纠正一下代码吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-20 05:00:38

试试这样的东西

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2018-06-20 04:57:33

在for循环(plt.figure()等)外部初始化图形。如果您需要plt.show(),请在循环之后执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50936819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档