ウェブアプリ飛び込む

  • 画像を表示し、音を再生するウェブアプリを作る
  • Jupyterノートブックを使ってPythonでデータグラフを作る方法を学ぶ
  • Streamlitでデータダッシュボードのウェブアプリを作る

ストリームリット

StreamlitとPythonを使ってウェブアプリを作るのは簡単です。ブロックベースのコーディングプラットフォームと同様に、Streamlitプラットフォームには、1行のコードでアプリに追加できるコンポーネントやウィジェットが多数含まれています。ほとんどのコードは既に記述され、パッケージ化されているので、難しいコードに悩まされることなく、アプリのゴールに集中することができます。 

Streamlitの使い方を練習するために、ThunkableとApp Inventorで作成したモバイルアプリの例の1つを取り上げ、同じアプリをStreamlitを使ってウェブアプリ形式で作成する方法を紹介します。 

アクティビティ1:サウンドボードアプリ

所要時間30分

Streamlitウェブ・アプリケーションのコード化

  1. 下のボタンをクリックして、アプリ制作に必要なアセット(画像や音声ファイル)をダウンロードしてください。
  2. フォロー ひとつ ボタンを押すと音が鳴るシンプルなサウンドボードアプリを作成するためのビデオです。
  3. アプリに4人目の人物を追加します。アプリに追加する画像と短いサウンドファイルを見つけてください。有名なスピーチのリンクです。
アセットファイルのダウンロード

データを扱う

Python言語はデータをうまく扱うことができる。Pythonには、コーダーがデータを読み取り、操作し、プロットできるように特別に作られたライブラリがたくさんある。Streamlitプラットフォームと組み合わせれば、コーダーはユーザー向けにデータを分析・表示するアプリを簡単に作ることができる。また、次のステップとして、データセットや機械学習モデルをアプリに組み込むこともできます。

データグラフ

プログラマーやデータサイエンティストの多くは、Pythonでデータを扱う際にノートブックと呼ばれるソフトウェアを使用している。最も人気のあるノートブックのインターフェースの1つが Jupyterノートブック.Kaggle Survey 2022の結果によると、Jupyter Notebookは最も人気のあるデータサイエンス対話型開発環境(IDE)で、回答者の80%以上が使用しています。 

Jupyter Notebookはブラウザ上で動作するが、他のインターフェースもある。例えば、Visual Studio Codeに直接統合することができる。 

コードを実行するノートブックの背後にあるエンジンは、次のように呼ばれる。 カーネル.Pythonでは、ipythonカーネルを使います。 

ノートブックでは、Pythonコードだけでなくテキストも書くことができます。テキストは マークダウン言語を使って書かれます。ノートブックに含まれるコードのヘッダーや説明を追加するには良い方法です。

ノートブックで直接Pythonコードを実行することもできます。 

コードセルのjupyter notebookスクリーンショット

学校で使うような物理的なノートブックに似ているJupyter Notebookは、メモを取ったり、データプロジェクトで考えを整理したり、情報を探索したりするのに最適な方法です。コードを実行する機能が追加されたことで、Pythonコードを管理された組織的な方法で実験できるようになりました。 

Jupyter Notebookは、実際のアプリをビルドするためにVisual Code Editorにジャンプする前に、Webアプリのさまざまな側面を計画し、テストするのに役立ちます。

パイソンライブラリ

ウェブ・アプリを構築するために、コード内で使用する必要のあるライブラリーはたくさんある。A ライブラリは、特定のタスクを実行するためにあらかじめ書かれたコードの集まりです。プログラミング・ライブラリは非常に強力で、わずか数行のコードでアプリに強力な機能を持たせることができます。 

Pythonの場合、ほとんどのライブラリはまずコンピュータにインストールし、Pythonスクリプト・ファイルで必要なライブラリをインポートする必要がある。 

データを使用するために必要なライブラリの例としては、numpyとpandasがある。

パンダを使えば、アプリは大量のデータを簡単に扱うことができる。Pandasはデータをデータフレームと呼ばれるものに格納し、アプリはデータフレームを操作します。 Numpyには、データフレーム内のデータに対して数値演算を実行するための関数が多数用意されています。

さらに、データを可視化するためのプロットやグラフ作成ライブラリも数多く存在する。Pythonで最も人気のある可視化ライブラリは matplotlib, plotlyそして seaborn

次のアクティビティでは、これらすべてのライブラリを使用します。このアクティビティでは、音楽とメンタルヘルスの調査からデータセットを取り出し、ユーザーが対話できるようにデータをさまざまな方法で表示するデータダッシュボードアプリを作成します。

アクティビティ 2:データダッシュボード

所要時間:90分

Streamlitウェブアプリの構築

コンピューター上でコーディングするか、クラウド上でコーディングするかによって、適切なビデオ・セットに従ってください。
  • パソコンで
    1. このビデオ(パート1)に従ってJupyter Notebookをインストールし、実行してください。ノートブックファイルをダウンロードするには、下のリンクをクリックしてください。
    2. このビデオ(パート2)に従って、Streamlitを使ってデータダッシュボードアプリを構築してください。
  • クラウドで
    1. このビデオ(パート1)に従って、Github CodespacesでJupyter Notebookを実行してください。
    2. Streamlit.ioを使ってデータダッシュボードアプリを作るには、このビデオ(パート2)に従ってください。
君の番だ: データダッシュボードにもう一つグラフを追加する。オリジナルのJupyter Notebookにある他のグラフから選ぶか、Jupyter Notebookで新しいプロット/グラフを作成し、そのコードをStreamlitに統合してダッシュボードに追加します。
ノートブックのダウンロード

振り返り

おめでとうございます、あなたはStreamlitで2つのウェブアプリケーションを作りました!自問自答してみてください:

反射
Jupyter NotebookやStreamlitのインストールや実行で何か問題はありましたか?
問題にぶつかったとき、どのように乗り越えましたか?
このレッスンで学んだことを、プロジェクトでどのように活用できますか?
前のスライド
次のスライド

主な用語のおさらい

  • ジュピターノート - Pythonコーディングでデータを扱う人気のデータサイエンス対話型開発環境
  • カーネル- Jupyter Notebooksのエンジンとして動作するプロセス。
  • マークダウン言語- 読みやすいようにテキストを簡単にフォーマットできる言語
  • ライブラリ- 特定のタスクを実行する、あらかじめ書かれたコードの集まり

追加リソース

ジュピター・ノートブック

 

ストリームライト