【Python Webアプリ】機能、完全攻略!StreamlitでWebアプリ作成【Part2】

Python

概要

前回から引き続きStreamlitの解説をしてゆきます
前回はStreamlitのAPIについて解説しました
Streamlit開発でどのようなことが可能なのかを一通り知ることができます
具体的には、チャート表示系のメソッド、入力ウィジェットを作成するメソッド、メディアを表示するメソッド、レイアウトを設定するメソッド、チャット風の表示を作成するためのメソッドについて解説します

↓Lesson 4にStreamlitの作り方が乗っています

楽天Kobo電子書籍ストア
¥2,420 (2025/03/20 01:49時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場

チャート表示系のメソッド

最初にチャート表示系のメソッドについて紹介します

st.line_chart

まずはst.line_chartです
st.line_chartでは折れ線グラフを表示します
引数にデータフレームを設定することで折れ線グラフを表示できます

st.area_chart

続いてはst.area_chartです
st.area_chartでは面グラフを表示します
引数にデータフレームを設定することで面グラフを表示できます
面グラフは折れ線グラフに基づいて軸と折れ線に囲まれている部分を色で強調されています
全体的な総量を比較するのに使用されることが多いです
従って、単純な値を比較する際には折れ線グラフを、累積的な値を比較する際には面グラフを使用するのがよいでしょう

st.bar_chart

続いてはst.bar_chartです
st.bar_chartでは棒グラフを表示します
引数にデータフレームを設定することで棒グラフを表示できます
折れ線グラフは時系列データのように順番に意味のあるデータにつかいましたが、
棒グラフは順番を入れ替えても問題ないようなデータに使います

st.pyplot

続いてはst.pyplotです
引数にmatplotlibで作成したオブジェクトを設定することでグラフや図を表示できます

st.altair_chart

続いてはst.altair_chartです
引数にaltairで作成したオブジェクトを設定することでグラフや図を表示できます
matplotlibとaltairのどちらもデータを可視化するためのライブラリですが次のような違いがあります
matplotlibはカスタマイズ性が高いですが、複雑なデータを表示したい場合は多くのコードを書く必要があります
Altairはインタラクティブにデータを表示でき、複雑なデータでも少ないコードで表示可能ですがカスタマイズ性が低いです

st.vega_lite_chart

続いてはst.vega_lite_chartです
引数にvega_liteで作成したオブジェクトを設定することでグラフや図を表示できます

st.plotly_chart

続いてはst.plotly_chartです
引数にPlotlyで作成したオブジェクトを設定することでグラフや図を表示できます

st.bokeh_chart

続いてはst.bokeh_chartです
引数にBokehで作成したオブジェクトを設定することでグラフや図を表示できます

st.pydeck_chart

続いてはst.pydeck_chartです
引数にPyDeckで作成したオブジェクトを設定することでグラフや図を表示できます

st.graphviz_chart

続いてはst.graphviz_chartです
引数にdagre-d3で作成したオブジェクトを設定することでグラフや図を表示できます
matplotlib、altair、vega_lite、plotly、Bokeh、PyDeck、dagre-d3は全てグラフ可視化のためのライブラリです
いろいろ使ってみて自分の好みに合ったものを選びましょう

st.map

続いてはst.mapです
引数にデータフレームを設定することでマップ表にデータをプロットできます

入力ウィジェットを作成するメソッド

続いて入力ウィジェットを作成するメソッドについて紹介します

st.button

まずはst.buttonです
これはボタンを作成します

st.download_button

続いてはst.download_buttonです
これはダウンロードボタンを表示します

st.checkbox

続いてはst.checkboxです
これはチェックボックスを表示します

st.radio

続いてはst.radioです
これはラジオを表示します

st.selectbox

続いてはst.selectboxです
これはセレクトボックスを表示します

st.button

st.multiselect

続いてはst.multiselectです
これは複数選択できるセレクトボックスを表示します

st.slider

続いてはst.sliderです
これはスライダーを表示します

st.select_slider

続いてはst.select_sliderです
これはスライダーを表示しますが、先程のst.sliderとの違いは何でしょうか
st.sliderは数値やタイムスタンプ等のデータにしか使えませんが、st.select_sliderはそれ以外にも使用できます

st.text_input

続いてはst.text_inputです
これはテキスト入力できるウィジェットを表示します

st.number_input

続いてはst.number_inputです
これは数値入力できるウィジェットを表示します

st.text_area

続いてはst.text_areaです
これは複数行のテキスト入力できるウィジェットを表示します

st.date_input

続いてはst.date_inputです
これは日付を入力できるウィジェットを表示します

st.time_input

続いてはst.time_inputです
これは時間を入力できるウィジェットを表示します

st.file_uploader

続いてはst.file_uploaderです
これはファイルをアップロードできるウィジェットを表示します

st.color_picker

続いてはst.color_pickerです
これは色を選択できるウィジェットを表示します

メディアを表示するメソッド

続いてメディアを表示するメソッドについて解説します

st.image

まずはst.imageです
これは画像を表示できます

st.audio

続いてはst.audioです
これは音声を表示できます

st.video

続いてはst.videoです
これは動画を表示できます

レイアウトを設定するメソッド

続いて、レイアウトを設定するメソッドについて解説します

st.sidebar

まずはst.sidebarです
これはサイドバーを表示します

st.columns

続いてはst.columnsについてです
通常は上から下に表示がなされているのですが、st.columnsを使えば2列に表示を作れます

st.tabs

続いてはst.tabsです
これはタブを表示します

st.expander

続いてはst.expanderです
これを使用することでクリックで表示、非表示できる領域を作成します

st.container

続いてはst.containerです
これはひとまとまりの領域(コンテナ)を作成します

st.container

続いてはst.emptyです
これは空のコンテナを作成します。st.containerで作成しデータ表示を行ったコンテナをすべて消去したい場合に便利です

チャット風の表示を作成するためのメソッド

続いてチャット風の表示を作成するためのメソッドを紹介します

st.chat_message

まずはst.chat_messageです
これはチャットメッセージ風の表示を行います

st.chat_input

続いてはst.chat_inputです
これはチャットの入力欄のようなウィジェットを作成します

タイトルとURLをコピーしました