PyScript②(ライブラリ)

ライブラリ

PyScriptでライブラリを使用するときには、py-config タグを使います。

例えば matplotlibpandas を使用するためには、下記のように記述します。

1
2
3
<py-config>
packages = ["matplotlib", "pandas"]
</py-config>

サンプルコード

使用するライブラリをpy-configタグで宣言することにより、py-scriptタグ内でそのライブラリをインポートすることができるようになります。

下記のサンプルコードでは、CSVファイルをダウンロードし、pandasライブラリを使ってそのCSVファイルを読み込み、matplotlibライブラリを使って棒グラフを描画しています。

[ソースコード]

matplotlib.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
<title>Ice Cream Picker</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
<script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head>
<body>

<py-config>
packages = ["matplotlib", "pandas"]
</py-config>

<py-script>
import pandas as pd
import matplotlib.pyplot as plt

from pyodide.http import open_url

url = (
"https://raw.githubusercontent.com/Cheukting/pyscript-ice-cream/main/bj-products.csv"
)
ice_data = pd.read_csv(open_url(url))

def plot(data):
plt.rcParams["figure.figsize"] = (24,12)
fig, ax = plt.subplots()
bars = ax.barh(data["name"], data["rating"], height=0.7)
ax.bar_label(bars)
plt.title("Rating of ice cream flavours of your choice")
display(fig, target="graph-area", append=False)

plot(ice_data)
</py-script>

<div id="graph-area"></div>
</body>
</html>

[ブラウザ表示]

上記のようにブラウザ上に、棒グラフを描画することができました。