1. トップ
  2. Python
  3. 【Streamlit入門】Pythonのフレームワークで気軽にデータ分析アプリを作ろう!

【Streamlit入門】Pythonのフレームワークで気軽にデータ分析アプリを作ろう!

「Streamlit」とは、Pythonベースのデータサイエンス領域に有用なフレームワークです。現在、PythonはAI領域でのプログラミング言語として注目を集めています。そこで、今回はStreamlitの概要やインストール方法、サンプルコードをご紹介します。

Streamlitとは?

Streamlitとは、PythonでWebアプリケーションを作成するためのフレームワークです。

データサイエンティストやAIエンジニア向けに開発されており、バックエンド開発の知識がなくてもPythonのコードを数行書くだけで、気軽にデモ用のアプリを作成することができるのが特徴です。

特徴と利用用途

Streamlitの一番の特徴は手軽に開発できることです。

最短一行のコードでWebアプリを開発でき、アプリのデプロイも簡単に可能です。

WebUIを簡単に作成できるため、アプリがひとまず動くかどうかを素早く確認したい場合に適しています。また、コードも直感的に理解することができます。

HTMLやCSSなどの知識を要することなくデータの可視化が可能です。主にデータサイエンス領域で、値を動的に変更するWebアプリに用いられることが多いです。

実行例を呼び出すコマンドが準備されていたり、公式ドキュメントが充実していたりするのでとても学習しやすいのも特徴です。Streamlitは簡易的な機能に限られるため、本格的なWebアプリを開発したい場合はDjangなどの別のフレームワークを使用しましょう。

Djangoについては「 Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう 」で詳しく解説しています。

プログラマー

Streamlitの基本操作を確認

ここではStreamlitの基本的な操作を確認していきます。

インストールとデモ環境の確認

ここでは、Pythonがインストールされた環境を前提として説明していきます。
環境構築については「 Pythonの開発環境はどうすればいい?統合開発環境もまとめて解説!」で詳しく解説しています。

VScodeのターミナルを開き以下のコマンドを実行してインストールを行います。

以下はインストールが完了した時の画面です。

streamlit

anacondaで仮想環境を構築してからインストールする場合は以下のコマンドを実行します。

コマンドの実行

次にサンプルアプリを実行してみます。

以下のコマンドを実行し、デモ環境を立ち上げます。

実行すると以下のように表示されブラウザが立ち上がります。

ブラウザの立ち上げ

ブラウザを開くと以下の画面が表示されます。

ブラウザの画面

画面左の Select a demo above から様々なサンプルアプリを確認できます。

最後にアプリを作ってみます。まずは、公式ドキュメントを確認してみましょう。

Streamlitの拡張機能

上記画像、赤枠のComponentsでStreamlitの拡張機能を確認できます。サードパーティのモジュールを利用することでより効率的にWebアプリを作成できるのでぜひ利用していきましょう。

事前準備としてapp.pyというファイルを作成してください。作成後、以下のソースコードを記述しましょう。

2行の簡単なコードです。

2行の簡単なコードです。コードの作成が完了したらターミナルで以下のコマンドを実行しましょう。

実行するとご覧のページが表示されます。

コードの作成

テキストを表示する

テキストを表示するには下記コマンドを実行し、Streamlitをインポートします。タイトル、ヘッダー、通常テキストのほか、マークダウンも書くことができます。下記例文となります。

ウィジェットを表示する

チェックボックスやメニューリスト、テキスト入力フォームなどのウィジェットも簡単に表示することができます。

Streamlitでグラフを可視化してみよう!

ここではStreamlitでグラフを描画する方法をご紹介します。

簡単な表やグラフを表示する

以下のコマンドでPandasをインポートします。

StreamlitではPnadasのDataFrameを表形式やグラフ形式で簡単に表示できます。

表形式で表示:st.dataframe() (動的) ,st.table() (静的)など

グラフ形式で表示:st.line_chart() (線グラフ) , st.var_chart() (棒グラフ)

Pandasについては「 【Pandas入門】Pythonのデータ分析ライブラリ「Pandas」を解説! 」で詳しく解説しています。

Matplotlibでより凝ったグラフを表示する

より自由度の高いグラフを作成して表示したい場合はMatplotlibを用いてグラフを作成しましょう。

以下のコマンドを実行し、Matplotlibをインポートします。

Matplotlibにてグラフの詳細を設定し、以下の関数の引数に作成したグラフを与えればグラフが表示されます。

st.pyplot()

Matplotlibについては「Pythonでグラフ描画する方法を解説。Matplotlibを使えば簡単!」で詳しく解説しています。

 

この記事ではPythonベースのデータサイエンス領域に有用なフレームワークである、Streamlitの特徴や用途についてご紹介しました。

Streamlitは短いコードを記述することで、Webアプリを構築し動作確認することのできる便利さを持っています。

短納期化が進むWeb業界では開発スピードの速さが求められますので、導入を検討してみてはいかがでしょうか。

エンジニアに役立つ目的別講座

Pythonの基本~応用をマスター

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門講座。Python3の基本を取得できます。

PythonでのWebアプリ開発

爆速で5つのPython Webアプリを開発
プログラミング初心者必見!Pythonの基礎は理解したが、Webアプリなども作りたいという方にオススメ!

エンジニアへの第一歩

【HTML,CSS,JS,PHP,Git,Docker】プログラミング初心者OK! ゼロからわかるWebシステム開発
HTML, CSS, JavaScript,PHP,Git,Docker,AWSを用いたWebアプリケーション開発の方法を総合的に学べます。

TypeScriptを基礎から学ぶ

超TypeScript入門 完全パック
TypeScriptをコンプリートできます!本気でTypeScriptを熟知したい方、JavaScript,Vue,React,Angular,Node.jsエンジニアの方は必見!

AWSを基礎から学ぶ

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
AWSの基本資格「AWS 認定ソリューションアーキテクト – アソシエイト試験」を合格を目指し、そのための知識や経験を獲得できるように!

新CCNA試験(200-301)完全未経験から合格へ!

新CCNA(200-301)完全未経験からの合格講座(コンプリート版)
新CCNA試験にて頻出のワイヤレスLANやSDN、自動化とプログラマビリティなどを徹底解説!「参考書だとよくわからない」「もう一度おさらいしたい」という方にオススメ!