python始める前後あたりでこちらのvtuberさんの動画を見て、python便利だなぁと手を出したわけです。
今月に入ってから作っていた血圧データ表示ツールがようやく完成。
以前はExcelやLibreOfficeで表に組み込んでリストからグラフ作成していたのですが、入力ミスやズレた時にデータ修正が厄介だったので、CSVのテキストなら楽だろうということで(表計算ソフトだとずらした時に自動的にセル番号も変更されるので、それがちょっと面倒なことになる。)
ソースは以下の通り。
自分用なので、動けば良い程度のプログラムなので、精錬されてはいないと思いますが、なにか参考になるものがあればご自由に。自分もいろんなところから引用や参考にさせていただいていますので。
基礎データは日付、計測時間、最高血圧、最低血圧、脈拍数の5つ。
このデータをCSVで作ります。
date,time,up,down,tempo9/4,10:10,117,72,569/5,8:21,121,81,639/6,9:42,119,80,589/7,9:38,115,79,559/8,10:15,117,81,629/9,10:47,117,79,629/10,9:59,109,74,619/11,10:06,117,76,639/12,9:54,119,79,579/13,9:06,118,81,599/14,10:34,117,76,549/15,10:17,113,85,649/16,10:25,121,76,589/17,8:09,119,81,559/18,9:54,119,79,619/19,10:31,116,74,609/20,9:42,116,78,579/21,11:10,116,72,599/22,10:19,116,79,599/23,11:17,118,79,649/24,10:45,117,82,629/25,10:13,118,83,549/26,11:19,119,81,609/27,8:28,116,85,649/28,10:22,119,76,589/29,8:28,116,77,619/30,10:18,118,76,5610/1,8:21,120,82,5710/2,10:21,118,77,5910/3,9:15,123,81,5610/4,10:40,118,81,5910/5,10:18,119,80,6210/6,8:51,118,83,5910/7,7:50,115,76,71
読み込ませるCSVデータは決め打ちにしてしまいました。それ以外もファイル名は決め打ちです。
CSVデータの入力ツールや読み込みツール等は別途作らずにVScodeで色分けプラグイン入れて手入力です。
当初標準ライブラリのCSVのやつを使おうと思ったものの、うまくいかなかったので、さっさとpandasに切り替え。
pandasでCSVを読み込んで、pandasでグラフ表示。
XY軸それぞれ一つで3つのデータを折れ線グラフで表示させるようにします。
当初はこのグラフに表もつけれると思っていたんですが、そういう作例がすぐに見つからなかったので諦めて、自分で簡単にできるHTMLにすることに。
データをfor文で回して、指定セル数事に改行的にテーブルを折り返します。
テーブルの整形はCSSで行っています。align廃止になってるんですね…。HTML4どころか下手すりゃHTML3で止まってます…。今回、ついでにCSSの使い方も少々わかりました。
table{border-collapse: collapse;margin: auto;}td{text-align: right;}
HTML内臓にしても良かったですが、プログラムが煩雑になりそうだったので、すなおにCSSファイルを作って、linkタグで繋いでいます。
表組み制作でどうにもこうにも期待した形状にならなくて、そこだけで1時間以上もかかってしまいました。
0スタートのindexと改行のための剰余計算でズレちゃうんですよね。
そんなこんなでなんとか完成。
これで病院に行くときの資料作成に困らないです。
ネットで情報検索するといくらでも情報転がってるのが楽で良いですね。
perlより遥かに情報が多くて、python自体の各種ライブラリがかゆいところに手が届くものばかりなのが良いです。
もうちょっと外に出せるようなプログラムを組めれば良いんですが、特にアイデアが無いんですよね。日々の活動を楽にするだけのプログラムばかりなので。
以下は参考資料。
当初はPDFで一括主力する予定だったんです…。
pandasでの読み込みとグラフ制作の参考資料です。
X軸の表示のカスタムの参考にさせていただきました。
pandasのデータの処理の仕方の参考にさせていただきました。
グラフを画像保存する方法の参考にさせていただきました。
凡例表示がグラフに重なってしまい見えにくかったので、場所を変えることができないかと探して見つけて、ここで解決でした。
凡例をずらしたら画像からはみ出すようになってしまったので、対処法を探していろいろ回って発見したのがこちらのサイト。
どこに凡例を置こうが、全部まとめて出力してくれます。
書籍も数冊確保していますが、読み終わる前にネットで検索して解決しちゃうので、書籍ってほんとに必要なのかな?とも思ったり。
とはいえ、上記2冊ですけどね。
みんなのpythonはかなり前に買ったものの読む暇が無くてのこり1/5程度ですが、読めていません。
シリコンバレーの方は先日Yahoo!フリマで買ったものの、まだ1ページも読んでいません。
目的通りのプログラムを組むだけならネット検索だけで済むかと思いますが、普段使わないメソッドなんかにも目を通しておけば、いつか役に立つこともあるんじゃないかと思っています。書籍の国語辞典で調べると、必要じゃない語彙まで目に入るようなものです。
まだ組みたいプログラムはあるので、あまり苦労しないで組み上げれれば良いんですが…。