Как я могу преобразовать значения времени det unix из txt файла в значения даты, используя matplotlib?

1

Я в основном хочу преобразовать значения времени unix, которые у меня есть в первой строке моего текстового файла с именем 'EKTE9', к дате. Я думаю, что использование библиотеки 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 строк

  • 0
    Не могли бы вы отредактировать вопрос, включив в него несколько строк из EKTE9.txt чтобы мы могли понять, что это за формат.
  • 0
    Это сделало работу, ты Мартин Эванс. Много значит
Показать ещё 1 комментарий
Теги:
csv
matplotlib
datetime

2 ответа

0
Лучший ответ

Это сделало работу. Спасибо большое Мартин Эванс. Фина код:

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

x = []
y = []

with open('EKTE9.txt','r') 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()
0

Вы бы сначала создать объект datetime объекта с помощью datetime.fromtimestamp(). Затем его можно преобразовать в число matplotlib с помощью date2num(). Наконец, вы должны использовать 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()

Это тогда покажет ваши два значения следующим образом:

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню