2017-10-10 78 views
0

我拥有的数据文件说data.txt为,如何绘制多组来自同一个文本文件数据的matplotlib

1 10 
2 20 
3 30 
4 41 
5 49 

1 11 
2 19 
3 32 
4 37 
5 52 

注意有两个数据集的。我想在同一个图表中绘制它们。在gnuplot这是非常简单的,我们只需要运行plot 'data.txt' with line,我们会得到这样一个图, enter image description here

其实我有相同的数据文件50组这样的。我刚开始学习python。我想用numpymatplotlib来绘制这个数据文件。

也有类似的线程在这个论坛一样,

How to plot data from multiple two column text files with legends in Matplotlib?

How can you plot data from a .txt file using matplotlib?

,但我找不到类似我的问题什么。

+0

你可以显示你的代码吗? – DavidG

回答

0

一个想法可以是读取完整文件,将其拆分为发生双行换行的位置,.split('\n\n')并使用numpy.loadtxt读入每个部分。

import numpy as np 
from io import StringIO 
import matplotlib.pyplot as plt 

filename="data.txt" 
with open(filename) as f: 
    data = f.read() 

data = data.split('\n\n') 

for d in data: 
    ds = np.loadtxt(StringIO(unicode(d))) 
    plt.plot(ds[:,0],ds[:,1]) 

plt.show() 
+1

'unicode'在运行'python3'时出现NameError,因为'Python 3'将'unicode'类型重命名为'str'。用'str'代替它后,它的工作,感谢您的帮助。 – ddas

相关问题