どうも、月見(@Suzuka14144156)です。
この記事では、Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法について解説します。
よってこのようなお悩みをお持ちの方におすすめの記事です。
- Streamlitって何?
- Streamlit Share(Sharing)って何?
- なるべく簡単な方法が知りたい
- 1Streamlit Sharingに登録する
- 2WebアプリをGitHubにアップロード
GitHubが未登録の場合は、登録すること
- 3デプロイ
Streamlitとは?
- Web アプリを数分で立ち上げることができるPythonのライブラリです
以下の動画が分かりやすいかと思います。
Streamlitを利用すると、以下のようなダッシュボードが作成可能です。
またWebに公開することも比較的容易に実現することができます。
具体的なイメージは、以下のリンク先から確認可能です。
Streamlitのメリット
- Pythonのみで記述できる(HTML,CSSは不要)
- これまで作成したpyコードや、jupyternotebookを利用できること
- デプロイ~公開までが簡単
とにかくクイックにできるのが非常に魅力です。
参考:【Python】Streamlitとは?始め方、使い方を解説
Streamlit Share(Sharing)とは?
- Streamlit Share(Sharing)は、データサイエンティストや機械学習エンジニアなどの開発者が、自分たちの作成したWebアプリケーションを簡単に共有できるクラウドプラットフォームです。
Streamlit Sharingを使うと、データ分析や機械学習モデルの成果物を、すばやくかつ簡単にWebアプリケーションとして公開することができます。
また、複数のユーザーが同時にアプリケーションを使用することができるため、共同作業やテストなども円滑に行うことができます。
サーバーの設定や管理などの手間を省き、開発者がより効率的にアプリケーションの開発に集中できるように支援しています。
Streamlit Share(Sharing)への公開方法
- 1Streamlit Sharingに登録する
- 2WebアプリをGitHubにアップロード
GitHubが未登録の場合は、登録すること
- 3デプロイ
Streamlit Share(Sharing)の登録
- 以下のサイトにアクセス
- GoogleかGithubで続ける
- もしくはアドレスを登録する
私は、後々のことを考えてGithubで続けます。
- オーソライズする
以下の画面はGithubアカウントでログインしようとした場合です。
- 以下個人情報を入力し、登録する
- 以下の画面が表示されれば登録完了です
WebアプリをGitHubにアップロード
- Githubにアクセスする。
参考:Github
- 「New」をクリックし、レポジトリを作成
- 適当な名前で、レポジトリをクリエイト
- uploading an existing fileをクリックします
アップロードするコード(main.py)は、以下に置いておきます。
活用ください。
import streamlit as st
import pandas as pd
import numpy as np
st.title('Uber pickups in NYC')
DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
'streamlit-demo-data/uber-raw-data-sep14.csv.gz')
@st.cache_data
def load_data(nrows):
data = pd.read_csv(DATA_URL, nrows=nrows)
lowercase = lambda x: str(x).lower()
data.rename(lowercase, axis='columns', inplace=True)
data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
return data
data_load_state = st.text('Loading data...')
data = load_data(10000)
data_load_state.text("Done! (using st.cache_data)")
if st.checkbox('Show raw data'):
st.subheader('Raw data')
st.write(data)
st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)
# Some number in the range 0-23
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]
st.subheader('Map of all pickups at %s:00' % hour_to_filter)
st.map(filtered_data)
- ダウンロードをしたmain.pyをドラッグ&ドロップ
- commit changesをクリック
これでアップロードが完了です。
デプロイ
次が、最終ステップのデプロイです。
- 「New app」をクリック
- 以下のように設定し、Deployをクリックします
*Repositoryは、皆様が作成したレポジトリを選択ください
Deployをクリックすると以下の画面が表示されますので、少々お待ちください。
しばらくすると以下の画面が表示されます。
今回は、Uberのピックアップ状況を可視化するダッシュボードを例にしました。
Streamlit Share(Sharing)への公開したサイト
今回公開したサイトは、以下です。
Streamlit関連の参考書や講座
treamlitの参考書は、以下がオススメです。
Streamlitを扱うには、基本的なPythonのコード知識が必要です。
その場合は、以下の書物がオススメです。
Udemyのオンライン講座は、以下がオススメです。
Udemyは買い切りなので、一度購入してしまえば、何度でも閲覧できるのでオススメです。
Streamlitの公式ドキュメント
今回解説した内容は、以下の公式サイトを参考にしています。
まとめ
今回の記事では、Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法について解説しました。
Streamlitとは、以下です。
- Web アプリを数分で立ち上げることができるPythonのライブラリです
とても簡単に実装できるので、オススメです。
ぜひ参考にしてみてください。
コメント