エラーバーしたい(.mark_errorbar)
1import altair as alt
2import pandas as pd
3
4# データを準備する
5data = pd.DataFrame(...)
6
7# ベースとなるチャートを作成する
8base = alt.Chart(data).encode(
9 alt.X("X軸のカラム名")
10)
11
12# Y軸のカラム名をプロットする
13marks = base.mark_point().encode(
14 alt.Y("Y軸のカラム名")
15)
16
17# エラーバーをプロットする
18errors = base.mark_errorbar().encode(
19 alt.Y("エラーバーの下限を表すカラム名"),
20 alt.Y2("エラーバーの上限を表すカラム名"),
21)
22
23# ベースチャートにマーカーとエラーバーを重ねる
24marks + errors
.mark_errorbarでエラーバーを作成できます。
エラーバーの下限と上限を表すカラム名を、alt.Yとalt.Y2に指定します。
ただし、「エラーバー」しか表示されないため、その下地となるグラフ(=マーカー付きの散布図など)も同時に作成して、重ねて表示する必要があります。
1# tmp(気温の平均値)とtmp_std(気温の標準偏差)
2data["tmp_min"] = data["tmp"] - data["tmp_std"]
3data["tmp_max"] = data["tmp"] + data["tmp_std"]
4
5# time(時刻)をX軸にする
6base = alt.Chart(data).encode(alt.X("time"))
7
8# tmp(気温の平均値)をY軸にする
9marks = base.mark_point().encode(alt.Y("tmp"))
10
11# tmp_minとtmp_maxをエラーバーにする
12errors = base.mark_errorbar().encode(
13 alt.Y("tmp_min"),
14 alt.Y2("tmp_max"),
15)
16
17marks + errors
エラーバー付きの散布図を作成する場合は、
mark_pointとmark_errorbarを組み合わせて使います。
参考
気温の変化を記録したい
1def errorbars(
2 data: pd.DataFrame,
3 x: str,
4 y: str,
5 e: str
6) -> dict[str, alt.Chart]:
7
8 copied = data.copy()
9 copied["min"] = copied[y] - copied[e]
10 copied["max"] = copied[y] + copied[e]
11
12 base = alt.Chart(data).encode(alt.X(x))
13 marks = base.mark_point().encode(alt.Y(y))
14 errors = base.mark_errorbar().encode(
15 alt.Y("min"),
16 alt.Y2("max")
17 )
18 charts = {}
19 charts["errorbars"] = marks + errors
20 charts["marks"] = marks
21 charts["errors"] = errors
22 return charts
mark_pointでは、プロットしたい値を設定します。
``mark_errorbarでは、alt.Yとalt.Y2`にエラーバーの範囲を設定します。
エラーバーの取りうる範囲は、あらかじめ計算しておきます。