Movatterモバイル変換


[0]ホーム

URL:


Udemy メディアスキルアップしたい
社会人のための情報サイト

Streamlitとは?使い方とデータを可視化する方法

Streamlitでアプリ開発を行いたいものの、

・他のWebフレームワークとの違いが分からない…。
・機能や使い方が知りたい…。

という方も多いのではないでしょうか。そこでこの記事では、

・Streamlitの特徴や主な用途
・インストールや基本的な機能の使い方

についてご紹介します。

Streamlitの利用が初めての方でも、この記事を読めば、アプリの作成方法やデータを可視化する方法がわかります。

公開日:2022年7月29日

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >
監修
Udemy講師 |

専門領域:AI、データサイエンス、デジタルマーケティング、プログラミング

ウマたん (上野佑馬)

「データサイエンスやAIの力でつまらない非効率を減らしおもしろい非効率を増やす」がビジョンのWW inc.の代表取締役社長。日系大手→外資系→AIスタートアップでデータ分析やデジタルマーケティングを経験。多くの人にもっとデータサイエンスを身近に感じてもらうべく月に10万人が訪れる「スタビジ」というメデイアでデータサイエンスの面白さを発信中。著書に「データサイエンス大全」「漫画でわかるデジタルマーケティング×データ分析」など。

…続きを読む閉じる

Pythonのみでアプリ開発できるStreamlitとは?

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

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

Streamlit
出典:Streamlit公式サイト

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Streamlitの特徴と利用用途

Streamlitの一番の特徴は手軽に開発できるため、最短一行のコードでWebアプリを開発できて、アプリのデプロイも容易に行えます。複雑なコードが理解できない方でもStreamlitのコードであれば直感的に理解しながら開発することができます。

WebUIを簡単に作成できるため、アプリがひとまず動くかどうかを素早く確認したい場合に適しています。

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

他にも、実行例を呼び出すコマンドが準備されていたり、公式ドキュメントが充実していたりするのでとても学習しやすいのも特徴です。

プログラマー

他のWebフレームワークとの違い

PythonのWebフレームワークには、Streamlit以外にもDjangoやFlaskなどがあります。

Djangoは、データベース操作やフォームの管理など、幅広い機能を備えたフレームワークです。大規模なWebアプリを開発する際に、Djangoが役立ちます。Flaskは最小限の機能を備えたフレームワークで、動作の軽さや拡張の柔軟性が特徴です。

これらのWebフレームワークとStreamlitの違いとして、データサイエンスや機械学習に特化していることが挙げられます。また、Streamlitでは他のWebフレームワークよりもシンプルなコードでアプリを実装できます。

ただし、Streamlitは簡易的な機能に限られるため、大規模なWebアプリを開発したい場合はDjangoなどの別のフレームワークを使用しましょう。

  Streamlit Django Flask
コスト 低い 高い
機能 簡易的な機能 幅広い機能 最小限の機能
Python/JavaScript知識 不要 必要 必要
HTML/CSS知識 不要 必要 必要
得意領域 スピード重視のWebアプリ開発やデータサイエンス・機械学習 大規模で本格的なWebアプリ開発 小規模で簡単なWebアプリ開発

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

 

Streamlitのインストールとアプリの作成方法

ここからは、Streamlitの基本的な操作を確認していきますが、本記事ではPythonがインストールされた環境を前提として説明していきます。

環境構築については「Pythonの開発環境はどうすればいい?統合開発環境もまとめて解説!」で詳しく解説しています。

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

1
pipinstallstreamlit

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

streamlit

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

1
condainstall-cconda-forgestreamlit-y
コマンドの実行

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

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

1
streamlithello

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

ブラウザの立ち上げ

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

ブラウザの画面

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

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

Streamlitの拡張機能

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

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

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

1
2
3
importstreamlitasst
 
st.title("hello")

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

1
streamlitrunapp.py

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

コードの作成

 

Streamlitの基本的な機能の使い方を紹介!

Streamlitでは、ボタンやテキスト入力フォームなど、Webアプリに必要な機能を簡単なコードで実装できます。ここでは、以下のStreamlitの基本的な機能の使い方を見ていきましょう。

●タイトル・ヘッダー・テキスト
●ボタン・ラジオボタン
●チェックボックス・セレクトボックス
●テキスト入力フォーム
●メニューリスト

タイトル・ヘッダー・テキスト

タイトルやヘッダー、テキストを表示するには、下記のようなコードを記述します。

1
2
3
4
5
 
importstreamlitasst
st.title("ここにタイトルを入力")
st.header("ここにヘッダーを入力")
st.text("ここにテキストをテキスト")

コードを実行すると、タイトルとヘッダー、テキストが表示されます。

タイトルとヘッダー、テキストが表示

ボタン・ラジオボタン

ボタンを表示し、クリックされた時に何らかのアクションを行うコードの例は次の通りです。

1
2
3
4
5
 
importstreamlitasst
 
ifst.button('ボタン'):
st.write("ボタンがクリックされました。")

このコードでは、ボタンをクリックした時にテキストが表示されます。

ボタンをクリックした時にテキストが表示

ラジオボタンを表示するコード例は次の通りです。

1
2
3
4
5
6
7
8
9
10
 
importstreamlitasst
 
stock=st.radio(label='いずれか項目を選択してください',
                options=('みかん','レモン','桃'),
                index=0,
                horizontal=True,
)
st.write(stock+"が選択されました。")

上記のコードでは、クリックしたラジオボタンに応じて、表示するテキストが切り替わります。

クリックしたラジオボタンに応じて、表示するテキストが切り替わる

チェックボックス・セレクトボックス

チェックボックスを実装するコード例は次の通りです。

1
2
3
4
5
 
importstreamlitasst
 
ifst.checkbox('テキストを表示'):
    st.write("チェックが入っています。")

このコードでは、チェックが入っている時だけテキストが表示されます。

チェックが入っている時だけテキストが表示

複数の項目から選択できるセレクトボックスのコード例は次の通りです。

1
2
3
4
5
6
7
8
9
 
importstreamlitasst
 
fruit=st.selectbox(
    'すきな果物は?',
    ['みかん','リンゴ','梨']
)
 
'私の好きな果物は',fruit,'です。'

選択した項目に応じてテキストの内容が変化します。

選択した項目に応じてテキストが変化
無しを選択したときの表示

テキスト入力フォーム

テキスト入力フォームを実装するコード例は次の通りです。

1
2
3
4
5
 
importstreamlitasst
 
sampletext=st.text_input('入力項目',max_chars=12,help='12文字以内で入力してください。')
st.write('あなたは「'+sampletext+'」と入力しました。')

上記のコードを実行すると、フォームに入力した文字列が下部に表示されます。

フォームに入力した文字列が下部に表示

メニューリスト

複数選択が可能なメニューリストを作成するコード例は次の通りです。

1
2
3
4
5
6
7
8
 
importstreamlitasst
 
foods=['まぐろ','いか','いくら','味噌汁','茶碗蒸し']
 
order=st.multiselect('メニューを選んでください',foods)
 
st.write(f'ご注文の商品は{order}です。')

コード内の「st.write()」の冒頭にある「f」は、Pythonのフォーマット文字列を使用するためのコマンドです。ここでは、変数「order」を{}で囲うことで、メニューリストから選択された項目をテキスト内に埋め込んでいます。

メニューリストから選択された項目をテキスト内に埋め込む

 

Streamlitでグラフを使ってデータを可視化しよう!

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

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

表やグラフを表示する際はStreamlitに加えて、次のようなコードで「numpy」や「pandas」などのライブラリをインポートしましょう。

1
2
3
4
 
importstreamlitasst
importnumpyasnp
importpandasaspd

表を作成するコード例は次の通りです。ここではある製品の長さや重さを表にするためのコードを紹介します。

1
2
3
4
5
6
7
8
9
10
 
importstreamlitasst
importnumpyasnp
importpandasaspd
 
df=pd.DataFrame({
    '長さ':[100,200,300,400],
    '重さ':[150,300,450,600],
})
st.write(df)

表に含めるデータは、コードとして追加できます。

表に含めるデータは、コードとして追加できる

棒グラフを表示するコード例は次の通りです。ここではおにぎりの売り上げを棒グラフで表示ためのコードを紹介します。

1
2
3
4
5
6
7
8
9
10
 
importstreamlitasst
importpandasaspd
 
data=pd.DataFrame({
    '商品':['うめ','おかか','しゃけ'],
    '売上':[35,23,57]
})
 
st.bar_chart(data.set_index('商品'))
おにぎりの売り上げを棒グラフ

折れ線グラフは、次のようなコードで表示できます。ここではある期間の売り上げを折れ線グラフで表示するためのコードを紹介します。

1
2
3
4
5
6
7
8
9
10
11
 
importstreamlitasst
importpandasaspd
importnumpyasnp
 
data=pd.DataFrame({
    '日付':pd.date_range(start='2024-05-01',end='2024-05-06'),
    '売上':[100,120,130,80,100,150]
})
 
st.line_chart(data.set_index('日付'))
ある期間の売り上げを折れ線グラフで表示

これらのほかに散布図などのグラフも作成できます。

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

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

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

1
importmatplotlib.pyplotasplt

Matplotlibにてグラフの詳細を設定し、st.pyplot()という関数の引数に作成したグラフを与えればグラフが表示されます。Matplotlibを使って折れ線グラフを表示するコード例は次の通りです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
importstreamlitasst
importmatplotlib.pyplotasplt
importpandasaspd
 
dates=pd.date_range(start="2024-05-01",end="2024-05-06")
sales=[100,120,130,180,100,150]
 
fig,ax=plt.subplots()
ax.plot(dates,sales,marker='o')
 
# グラフのタイトルとラベルを設定
ax.set_title("Profits")
ax.set_xlabel("date")
ax.set_ylabel("profit")
 
# X軸の日付の形式を調整
ax.xaxis.set_major_formatter(plt.FixedFormatter(dates.strftime('%Y-%m-%d')))
 
# X軸のラベルの向きを調整
plt.xticks(rotation=45)
 
# Streamlitを使ってグラフを表示
st.pyplot(fig)
Matplotlibを使って折れ線

Matplotlibを活用すると、グラフ内にデータの名称や軸の名前などを分かりやすく表示できます。
Matplotlibの使い方について詳しくは「Pythonでグラフ描画する方法を解説。Matplotlibを使えば簡単!」をご覧ください。

 

Streamlitを使ってWebアプリを構築してみよう

この記事ではPythonのみでWebアプリ開発ができるStreamlitについて、特徴や使い方をご紹介しました。

Streamlitを活用すると、簡単なコードを記述するだけで、表やグラフを使ったデータの可視化ができます。

Streamlitを使ったアプリ開発について詳しく学びたい方には、下記の講座がおすすめです。

Webアプリの開発を効率化したい方は、ぜひStreamlitを活用しましょう。

Udemyおすすめ講座

【初心者向け】PythonのStreamlitの基礎を学んで可視化ダッシュボードや機械学習Webアプリを作ってみよう!

【初心者向け】PythonのStreamlitの基礎を学んで可視化ダッシュボードや機械学習Webアプリを作ってみよう!

4.5(245 件の評価)

3,142 人の受験生

作成者: ウマたん (上野佑馬)(AI、データサイエンス、デジタルマーケティング、プログラミング)

全てがPythonで完結する非常に便利なStreamlitの基本的な使い方を学んで色んななダッシュボードやWebアプリを作ってみよう!

\無料でプレビューをチェック!/

講座を見てみる

評価:★★★★★
全体的に難易度も低めで取り組みやすいコース。決定木の説明がわかりやすく、ここを見るだけでも価値がある。

評価:★★★★★
聞き取りやすい。一からの順番説明もいい。

Udemy LINE友だちに追加

他のオススメ講座はこちら

Pythonの基本~応用を学べる講座

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

独学で身につけるPython〜基礎編〜【業務効率化・自動化で残業を無くそう!】

爆速で5つのPython Webアプリを開発

「Python」のコース一覧を見る

ゼロからWeb開発を学べる講座

【2023年最新】【JavaScript&CSS】ガチで学びたい人のためのWEB開発実践入門(フロントエンド編)

【HTML,CSS,JS,PHP,Git,Docker】プログラミング初心者OK! ゼロからわかるWebシステム開発

「ウェブ開発」のコース一覧を見る

AWSを基礎から学べる講座

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)

「AWS」のコース一覧を見る

新CCNA試験(200-301)を学べる講座

新CCNA(200-301)完全未経験からの合格講座(コンプリート版)

「Cisco CCNA」のコース一覧を見る


icon関連記事

photo
photo
photo
photo

iconRANKING人気記事ランキング

1
システム開発

【初心者向け】 基本のLinuxコマンド一覧!操作別に紹介

2
Python

【初心者向け】Jupyter Notebookの使い方!インストール方法から解説

3
ブロックチェーン

公開鍵暗号方式とは?初心者でもわかる公開鍵暗号方式の基礎

4
システム開発

Twitter API(X API)とは?できることや料金体系、利用方法を解説

5
IT資格

Microsoft認定資格「AI-900」とは?難易度や出題内容を解説!

iconRECOMMENDED COURSE人気のUdemy講座

現役シリコンバレーエンジニアが教える次世代インターネットWEB3.0 NFT DeFi 入門講座

現役シリコンバレーエンジニアが教える次世代インターネットWEB3.0 NFT DeFi 入門講座

Google Cloud(GCP)の基礎 - 図解と実践でインフラの基礎を固める 【2025年 最新版】

Google Cloud(GCP)の基礎 - 図解と実践でインフラの基礎を固める 【2025年 最新版】

令和7年版:参考書の著者直伝!【基本情報技術者試験 科目A】講座 基礎理論から経営戦略までの全範囲を網羅

令和7年版:参考書の著者直伝!【基本情報技術者試験 科目A】講座 基礎理論から経営戦略までの全範囲を網羅

最新情報・キャンペーン情報発信中

  • twitter
  • instagram
  • facebook

[8]ページ先頭

©2009-2025 Movatter.jp