50 lines
1.6 KiB
Python
Executable File
50 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import datetime
|
|
|
|
import pandas as pd
|
|
from matplotlib import pyplot as plt
|
|
import matplotlib.dates as md
|
|
|
|
plt.rcParams["figure.autolayout"] = True
|
|
|
|
data_frame = pd.read_csv("data.csv", delimiter=';')
|
|
|
|
# Subplot, to move legend next to plot
|
|
# 1 row, 1 col, index: 1
|
|
plt.subplot(1, 1, 1)
|
|
|
|
# Rotate long date text
|
|
plt.xticks(rotation=25)
|
|
|
|
|
|
# pyplot doesn't like timestamps
|
|
# convert them to "date-numbers" and format
|
|
datenums = md.date2num([datetime.datetime.fromtimestamp(ts) for ts in data_frame.timestamp])
|
|
xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S')
|
|
ax = plt.gca()
|
|
ax.xaxis.set_major_formatter(xfmt)
|
|
ax.set_ylabel('Temperature [°C]')
|
|
|
|
# Data
|
|
plt.plot(datenums, data_frame.tempWarmSide1C, label='Warm 1', color='orange', marker='x')
|
|
for i, j in zip(datenums, data_frame.tempWarmSide1C):
|
|
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
|
|
|
plt.plot(datenums, data_frame.tempWarmSide2C, label='Warm 2', color='orangered', marker='x')
|
|
for i, j in zip(datenums, data_frame.tempWarmSide2C):
|
|
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
|
|
|
plt.plot(datenums, data_frame.tempCoolSide1C, label='Cool 1', color='blue', marker='x')
|
|
for i, j in zip(datenums, data_frame.tempCoolSide1C):
|
|
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
|
|
|
plt.plot(datenums, data_frame.tempCoolSide2C, label='Cool 2', color='navy', marker='x')
|
|
for i, j in zip(datenums, data_frame.tempCoolSide2C):
|
|
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
|
|
|
plt.axhline(y=-223, color='darkblue', linestyle=':', label='Operating temperature')
|
|
|
|
plt.legend(bbox_to_anchor=(1, 1), loc="upper left")
|
|
plt.show()
|