こんにちは、ひめのです。
StreamlitがSnowflake買収され、
セキュアなアプリがSnowflake内で完結する!というのを
弊社でも注目しておりまして、試行錯誤しています。
現状Streamlit in Snowflakeは通常のStreamlitよりも機能的な制限が多いです。
(詳細はこちらをご覧ください。)
Snowflakeに格納したデータを使って例えば円グラフを描画したい時、
matplotlibやplotlyを入れないと私が調べた限り無理…
でも肝心のmatplotlibやplotlyがインポートエラー…
Native appはハードル高いな、と回避していたけれどやはり潮時かな、
と思っていたところ、方法を見つけました!!
Streamlit in SnowflakeのEditモードの左上の方にある「Packages」をクリックします。
クリックするとポップアップが出ます。
Find Packagesと書いてあるテキストボックスに入れたいライブラリを入れて…
クリック!するとチェックマークが付きます。
プルダウン以外のところをクリックすると現在のライブラリ一覧に戻ります。
matplotlibが入りました!
同様の方法でplotlyも追加できますし、バージョンの選択も▼からできます。
カーソルを▼に合わせると右側に×も出てきて、削除もできます。
ライブラリを追加したらStreamlitのスクリプト側でインポートします。
import matplotlib.pyplot as plt
def draw_pie_chart(data, labels):
fig, ax = plt.subplots()
ax.pie(data, labels=labels, autopct='%1.1f%%', startangle=90)
ax.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
return fig
# データとラベル
data = [215, 130, 245, 210]
labels = ['Apple', 'Banana', 'Cherry', 'Date']
# 円グラフの描画
fig = draw_pie_chart(data, labels)
# Streamlitにグラフを表示
st.write("Fruit Pie Chart")
st.pyplot(fig)
適当なグラフですが、matplotlibの円グラフを表示することができました!
(サンプルコードはChatGPT先生にお願いしました。フルーツにナツメヤシを入れてくるセンスが独特です)
matplotlib、plotlyが直近では使いたかったのですが、
少し見た感じ他のライブラリも充実していそうだったので
ぜひ試してみてください!