如何使用matplotlib将txt文件中的det unix时间值转换为日期值?

时间:2019-04-02 17:04:01

标签: python csv unix matplotlib

我基本上想将文本文件“ EKTE9”的第一行中的Unix时间值转换为日期。我认为使用datetime库是可行的方法,但是我不知道如何在我的代码中实现它。一些答案将不胜感激。

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('EKTE9.txt','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        x.append(int(row[0]))
        y.append(float(row[3]))

plt.plot(x,y, label='Temperatur')
plt.xlabel('Tid')
plt.ylabel('Temperatur')
plt.title('Grafen viser temperatur under forsøket\n')
plt.legend()
plt.show()

以下是EKTE9.txt文件中的一些值:

1554058225,0.80,2.90,13.60,27.20
1554058525,0.30,0.80,9.60,26.70

该值持续约200行

2 个答案:

答案 0 :(得分:0)

您首先要使用datetime.fromtimestamp()创建一个datetime对象。然后可以使用date2num()将其转换为matplotlib号。最后,您应该使用DateFormatter()来帮助显示x轴。

import matplotlib
import matplotlib.pyplot as plt
from datetime import datetime
import csv

x = []
y = []

with open('EKTE9.txt', 'r', newline='') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')

    for row in plots:
        x.append(matplotlib.dates.date2num(datetime.fromtimestamp(int(row[0]))))
        y.append(float(row[3]))

hfmt = matplotlib.dates.DateFormatter('%d\n%H:%M')
plt.plot(x,y, label='Temperatur')
plt.gca().xaxis.set_major_formatter(hfmt)
plt.xlabel('Tid')
plt.ylabel('Temperatur')
plt.title('Grafen viser temperatur under forsøket\n')
plt.legend()
plt.show()

这将显示两个值,如下所示:

Matplotlib output

答案 1 :(得分:0)

做到了。非常感谢Martin Evans。 国际泳联代码:

<div class="data-row-cell data-row-caption">
  <span>{{caption that is really long}}</span>
</div>
<div class="data-row-cell data-row-value">{{data}}</div>