MySQLデータをpandas-bokehでグラフ化(備忘録)
毎日暑いので、エアコンの効いた部屋でノンビリPCいじってます。今日は、先日サーバーを入れ替え、自宅温度などをESP32からMySQLに取り込み、これをグラフ化するところまで備忘録にしておきます。
必要モジュールのインストール
今回はpandas-bokehとsqlalchemyをインストールしました。それぞれpipを用いてインストールします。
pip install pandas-bokeh
pip install sqlalchemy
全体のコードは以下のとおりです。
import pandas as pd
import sqlalchemy as sa
import pandas_bokeh
user='esp32'
password='*******'
host='192.168.1.**'
db='esp_data'
port=3306
url = f'mysql+pymysql://{user}:{password}@{host}:{port}/{db}?charset=utf8'
engine = sa.create_engine(url,echo=False)
query = "select reading_time,temp from SensorData order by reading_time desc limit 1000"
#query="select * from SensorData order by reading_time desc limit 10"
df = pd.read_sql(query,con=engine,index_col='reading_time')
#print(df)
df.plot_bokeh()
たったこれだけのコードです。16行目のindex_col=’reading_time’でX座標が時間軸になり、ソートはdescですが、プロットするときは経時的に描画されます。
