Skip to content

可視化

Polars の DataFrame 内のデータは、一般的な可視化ライブラリを使用して可視化することができます。

ここでは、Iris データセットを使用してプロット機能を示します。CSV をスキャンし、species カラムでグループ化を行い、petal_length の平均を取得します。

import polars as pl

path = "docs/data/iris.csv"

df = pl.scan_csv(path).group_by("species").agg(pl.col("petal_length").mean()).collect()
print(df)
shape: (3, 2)
┌────────────┬──────────────┐
│ species    ┆ petal_length │
│ ---        ┆ ---          │
│ str        ┆ f64          │
╞════════════╪══════════════╡
│ Virginica  ┆ 5.552        │
│ Setosa     ┆ 1.462        │
│ Versicolor ┆ 4.26         │
└────────────┴──────────────┘

hvPlot による組み込みのプロット

Polars には hvPlot を使用してインタラクティブなプロットを作成するための plot メソッドがあります。

df.plot.bar(
    x="species",
    y="petal_length",
    width=650,
)
hvplot_bar

Matplotlib

棒グラフを作成するには、DataFrame の各カラムを Matplotlib に Series として直接渡すことができます。Matplotlib は Polars オブジェクトを明示的にサポートしていませんが、Polars の Series を受け入れることができます。これは、null 値がないデータは Series をゼロコピーで numpy 配列に変換できるためです。

import matplotlib.pyplot as plt

plt.bar(x=df["species"], height=df["petal_length"])

Seaborn, Plotly & Altair

SeabornPlotlyAltairDataframe 変換プロトコルを活用して Polars の DataFrame を受け入れることができます。これにより、可能な場合はゼロコピー変換が提供されます。

Seaborn

import seaborn as sns
sns.barplot(
    df,
    x="species",
    y="petal_length",
)

Plotly

import plotly.express as px

px.bar(
    df,
    x="species",
    y="petal_length",
    width=400,
)

Altair

import altair as alt

alt.Chart(df, width=700).mark_bar().encode(x="species:N", y="petal_length:Q")