用python的txt文件绘制时间格式的图形

2024-05-29 03:10:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用spyder绘制一些图表 问题是我想避开第一行并以python可以绘制的格式转换X轴。 我为每个问题创建了两个解决方案,我的文件格式如下

Heure   O3  unit    alarm
11:46:35    1.054   ppb 
11:46:45    0.9767  ppb 
11:46:55    1.172   ppb 
11:47:05    1.173   ppb 
11:47:15    1.252   ppb 
11:47:25    0.813   ppb 
11:47:35    1.247   ppb 
11:47:45    1.054   ppb 
11:47:55    1.721   ppb 
11:48:05    1.098   ppb 
11:48:15    1.321   ppb 
11:48:25    0.4157  ppb 
11:48:35    0.856   ppb 
11:48:45    0.856   ppb 

避开第一条线的第一个解决方案:

f = open("filename.txt", "r")
header1 = f.readline()
for line in f:
line = line.strip()
columns = line.split()
time = columns[0]
concentration = float(columns[1])
print time, concentration

但我不能绘制它,因为他不接受格式HH:MM:SS

绘图的第二种解决方案:

import matplotlib.pyplot as plt
from matplotlib.dates import strpdate2num
import numpy as np

time, val = np.loadtxt("filename.txt", 
                       usecols=(0,1), unpack=True,converters = {0: strpdate2num("%H:%M:%S")})

plt.plot_date(time, val, "r")
plt.show()

它的工作,但我需要删除第一行手动,我正在试图避免这一步,因为我会重复这个操作的几个txt文件。你知道吗


Tags: columnsimporttxttimematplotlibas格式line
2条回答

对于numpy,您可以使用genfromtxt函数,该函数允许您指定参数“skiprows”要忽略的第一行的数量

# Ignore first two lines 
t,a,b = np.genfromtxt(path,skiprows=2,delimiter='\t',unpack=True)

感谢您的回答,添加skiprows作为Overdrivr表明它使程序工作

import matplotlib.pyplot as plt
from matplotlib.dates import strpdate2num
import numpy as np

time, val = np.loadtxt("filename.txt", 
                       usecols=(0,1), sliprows=1, unpack=True,converters = {0: strpdate2num("%H:%M:%S")})

plt.plot_date(time, val, "r")
plt.show()

相关问题 更多 >

    热门问题