Streamlit、気持ち良すぎだろ

Pythonはデータ分析をするのに便利なのですが、ユーザーインターフェースというかフロントエンド部分をどうするかでもやもやしている部分がありWEBフレームワークのFlaskやDjangoにも手を出していましたが、実際にサーバーにデプロイするとなるとちょっと面倒だな~って思っていました。

そこで出会ったのがStreamlit。簡単にWEBインターフェース関連を作成でき、ローカルネットワーク上でみんなでデータをいじくりながら検討できてしまう。(まあ、ここまではFlaskやDjangoでも面倒な部分はあれど同じですが)

Streamlitにはなんとクラウドサービスまであって、GitHubアカウントを持っていれば簡単にStreamlit Croudサーバーにデプロイできてしまいます。(Streamlit専用サーバーなのですでに環境は整備されていて、requirements.txtに使用しているライブラリーを記述するだけでOK)

あとはブラウザーから接続することで出先でパソコンやスマホでデータ閲覧&操作が可能になります。(レイアウトは環境に合わせて自動的に調整してくれます。HTMLやCSSを記述しないで済むのは楽ですね)

FlaskやDjangoに比べると高度なものはできませんが、やりたい事をとりあえずサクサク形にできるので気持ち良すぎです。(高度なものを作るのならば、フロントエンド開発得意な方にお願いすれば良いわけですし)

バックエンド開発はできるけど、フロントエンド開発はよくわからんという方には最適なライブラリーですね。

 

Streamlitの練習を兼ねて、厚生省のコロナ関連オープンデータを使ったダッシュボードを作ってみました。(厚生省純正のダッシュボードには及びませんが)

https://kuniyoshinakane-streamlit-app-app01-0rgea6.streamlitapp.com/

表の項目をクリックする事で、データをソートできます。

エリアはデフォルトで栃木県になってますが、変更可能になっております。

グラフはマウスカーソルが近い点のデータが表示されます。凡例をクリックすると、そのグラフだけが表示されます。(グラフ右上の拡大アイコンでグラフだけを表示することもできます。)

 

栃木県の重症者を降順にソートすると、2021年の1月と8月が多かった事がわかりますね。現在のオミクロンBa.5は感染者数が爆発的に増えましたが、新規感染者数に対する重症者の割合はデルタ株が流行っていた頃と比べると下がっている感じですかね。

考えられるのは、

1. デルタ株等に比べてオミクロンBa5は感染力は上がったが弱毒化している。

2. 新型コロナワクチンは、オミクロンBa5の感染を防ぐ力は弱いが、重症化を抑える力は十分ある。

のどちらかって感じですかね。個人的には2の方かなと思ってます。

また、栃木県の重症者が増えるのは帰省シーズンちょいすぎに多いので、帰省される方は感染対策にご注意を。

 

最近PCR検査人数に対する新規陽性者の割合が増えているので、検査が追い付いてなくなってきたのかとも思いましたが、抗原検査も行われるようになったので一概には判断できないかと。

 

これからも感染対策を続けてコロナ渦を乗り切っていきましょう。