對于 eink 顯示幕,它需要使用 128x250 像素的 png 檔案。
從一個小小的溫度和濕度記錄器我得到如下結果:
Date,Time,Temperature,Humidity
12.12.2021,17:02,23.8,48.9
12.12.2021,17:03,22.8,45.1
12.12.2021,17:04,22.7,44.5
12.12.2021,17:05,22.6,44.6
12.12.2021,17:06,22.6,45.4
12.12.2021,17:07,22.5,45.1
13.12.2021,13:02,23.8,48.9
13.12.2021,13:03,22.8,45.1
13.12.2021,13:04,22.7,44.5
13.12.2021,13:05,22.6,44.6
13.12.2021,13:06,22.6,45.4
13.12.2021,13:07,22.5,45.1
14.12.2021,19:02,23.8,48.9
14.12.2021,19:03,22.8,45.1
14.12.2021,19:04,22.7,44.5
14.12.2021,19:05,22.6,44.6
14.12.2021,19:06,22.6,45.4
14.12.2021,19:07,22.5,45.1
有天我用 python 做了一些簡單的繪圖(我是 python 的一個小塊頭):
from pandas import read_csv as pd
from matplotlib import pyplot as plt
Raspilog = pd('Temp.csv', header=0, squeeze=True)
Raspilog_CDate = Raspilog[Raspilog.Date == "13.12.2021"]
fig, ax = plt.subplots()
ax.plot(Raspilog_CDate.Time, Raspilog_CDate.Temperature, color="red")
ax2 = ax.twinx()
ax2.set(ylim=(0, 100))
ax2.plot(Raspilog_CDate.Time, Raspilog_CDate.Humidity, color="black")
plt.show()
結果如下:

但我需要它是 128x250 像素并保存為 png
我已經在互聯網上閱讀了有關 DPI 和英寸等的資訊。在我看來,沒有簡單的解決方案 :( 有沒有人知道如何做到這一點?
uj5u.com熱心網友回復:
您需要稍微調整一下 dpi(“每英寸點數”:每英寸的像素數)和figsize(以英寸為單位)。figsize 需要足夠大,以使文本 fig 有點合理。請注意,250x128 非常小,因此閱讀文本會很困難。
以下代碼是對一些可能的 dpis 進行試驗的結果。50 dpi 似乎不錯。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from io import StringIO
df_str = '''Date,Time,Temperature,Humidity
12.12.2021,17:02,23.8,48.9
12.12.2021,17:03,22.8,45.1
12.12.2021,17:04,22.7,44.5
12.12.2021,17:05,22.6,44.6
12.12.2021,17:06,22.6,45.4
12.12.2021,17:07,22.5,45.1
13.12.2021,13:02,23.8,48.9
13.12.2021,13:03,22.8,45.1
13.12.2021,13:04,22.7,44.5
13.12.2021,13:05,22.6,44.6
13.12.2021,13:06,22.6,45.4
13.12.2021,13:07,22.5,45.1
14.12.2021,19:02,23.8,48.9
14.12.2021,19:03,22.8,45.1
14.12.2021,19:04,22.7,44.5
14.12.2021,19:05,22.6,44.6
14.12.2021,19:06,22.6,45.4
14.12.2021,19:07,22.5,45.1'''
df = pd.read_csv(StringIO(df_str))
png_width, png_height = 250, 128
png_dpi = 50
fig, ax = plt.subplots(figsize=(png_width / png_dpi, png_height / png_dpi))
ax.plot(df.Time, df.Temperature, color="red")
ax2 = ax.twinx()
ax2.plot(df.Time, df.Humidity, color="black")
ax2.set_ylim(0, 100)
ax.set_xticks(np.arange(0, len(df), 2))
ax.set_xticks(np.arange(0, len(df)), minor=True)
ax.set_xticklabels(df.Time[0::2])
ax.tick_params(axis='x', which='both', length=4)
plt.tight_layout()
fig.savefig('Test250x128.png', dpi=png_dpi)
plt.show()
這會生成一個正好為 250x128 的 png:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/386437.html
上一篇:是否可以使用matplotlib使用曲面圖實作連續的顏色漸變?
下一篇:如何從位掩碼繪制多邊形補丁
