📈

[小ネタ]Altairのプロットでstaticな線を入れたい

2021/06/20に公開

Altairでは、mark_rule を用いることで、自在にstaticな線を入れることが出来ます。補助線が楽に書けるので、忘れないうちにメモ書きすることにしました。

import altair as alt
import pandas as pd

alt.Chart(
	pd.DataFrame({"x1": [10], "x2": [20], "y1": [5], "y2": [15]})
).mark_rule().encode(
	x="x1",
	x2="x2",
	y="y1"
)

x y には 2 スキーマが存在し、軸に対してスタート・ゴールのポイントを入れることが出来ます。上のケースでは y が固定なのですが、例えば

alt.Chart(
	pd.DataFrame({"x1": [10], "x2": [20], "y1": [5], "y2": [15]})
).mark_rule().encode(
	x="x1",
	x2="x2",
	y="y1",
	y2="y2"
)

とすると、

斜めにstaticなラインも入れることが出来ます。
Altairはグラフ同士を重ねることを + 演算子でサクッと書けるので、scatter図に対して線を入れたい場合は scatter + line な具合で書くことで楽に実現出来ます。

Altairはデータ量のリミットが5000件等のしばりもあって(オプションを付けることで解除も出来ますが、スタンダードなポリシーとして)若干敬遠気味でしたが、書いてみると楽にスタイリッシュなプロットを書くことが出来るので、これからはダッシュボードに用いたり等で、もっと仲良くなろうと思います。

GitHubで編集を提案

Discussion