エラーバーしたい(mark_errorbar

 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_pointmark_errorbarを組み合わせて使います。

mark_pointでは、プロットしたい値を設定します。 ``mark_errorbarでは、alt.Yalt.Y2`にエラーバーの範囲を設定します。 エラーバーの取りうる範囲は、あらかじめ計算しておきます。

 1def errorbars(data: pd.DataFrame, x: str, y: str, e: str):
 2    copied = data.copy()
 3    copied["min"] = copied[y] - copied[e]
 4    copied["max"] = copied[y] + copied[e]
 5
 6    base = alt.Chart(data).encode(alt.X(x))
 7    marks = base.mark_point().encode(alt.Y(y))
 8    errors = base.mark_errorbar().encode(
 9        alt.Y("min"),
10        alt.Y2("max")
11    )
12    charts = {}
13    charts["errorbars"] = marks + errors
14    charts["marks"] = marks
15    charts["errors"] = errors
16    return charts

リファレンス