MySQLデータをpandas-bokehでグラフ化(備忘録)
毎日暑いので、エアコンの効いた部屋でノンビリPCいじってます。今日は、先日サーバーを入れ替え、自宅温度などをESP32からMySQLに取り込み、これをグラフ化するところまで備忘録にしておきます。
必要モジュールのインストール
今回はpandas-bokehとsqlalchemyをインストールしました。それぞれpipを用いてインストールします。
1 2 |
pip install pandas-bokeh pip install sqlalchemy |
全体のコードは以下のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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ですが、プロットするときは経時的に描画されます。