繁体   English   中英

跳过.txt文件中的特定数据线以绘制带有中断的2D线

[英]Skip specific data lines from a .txt file in order to plot a 2D line with breaks

我试图绘制一个只涉及其文本文件某些行的图形。

如何在py脚本中实现这一目标?

import pylab as py
xa, ya = py.loadtxt('filename1.txt',skiprows=1,usecols=(0,1),unpack=True ) 
xb, yb = py.loadtxt('filename2.txt',skiprows=1,usecols=(0,1),unpack=True )

fig = py.figure(1,figsize=(12,14))

py.semilogy(xa, ya*2, '-', xb, yb*1.5, 'o', linewidth = 0.5) 

我的文本文件有100行(和2列),我想跳过'filename2.txt'的35:55和65:77行,以便绘制一条2d的行,并在它们之间留有空隙。 不幸的是,我无法通过matplotlib找到解决此简单任务的解决方案。

如果数据不是很大,则可能更容易阅读所有数据,然后只需从数据中选择所需的索引即可:

idx = np.arange(xb.shape[0])   # array([0, 1, 2, 3, 4, 5, 6, ...
mask = (idx < 35) | (idx > 55) | (idx < 65) | (idx > 77)
xb, yb = xb[mask], yb[mask]

您可以将ya和yb中不需要的数据点设置为np.nan。 Matplot跳过(或只是不绘制)这些点。

因此,您可以这样做(在读取txt文件之后):

np.put(ya,range(35,56,1),[np.nan]*(56-35))

以此类推。 xa和xb应该保持原样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM