重ね書きしたい(alt.layer

1hbars = alt.Chart(data).mark_bar().encode(x="time", y="events")
2marks = alt.Chart(data).mark_point().encode(x="time", y="temperature")
3hbars + marks

+演算子を使って、同じX軸を持つalt.Chartオブジェクトをひとつのレイヤーに重ね書きできます。 サンプルでは、時系列データのイベント数(hbars)と気温(marks)を表示しています。

テキストを重ねたい

 1base = alt.Chart(data).encode(
 2    alt.X("x").title("X軸"),
 3    alt.Y("y").title("Y軸"),
 4)
 5
 6mark = base.mark_bar()
 7
 8text = base.mark_text().encode(
 9    alt.Text("y")
10)
11
12# mark + text
13alt.layer(
14    mark,
15    text
16)

+演算子はalt.layerのエイリアスです。 このサンプルでは、あるデータのヒストグラム(mark)に、その時のエントリー数(text)を重ねて表示しています。

2軸グラフしたい

 1base = alt.Chart(data).encode(
 2    alt.X("time").title("測定時刻")
 3)
 4
 5mark1 = base.mark_bar().encode(
 6    alt.Y("event_rate").title("イベントレート [Hz]").scale(domain=[0, 5]),
 7)
 8
 9mark2 = base.mark_point().encode(
10    alt.Y("tmpC").title("気温 [℃]").scale(domain=[20, 30]),
11)
12
13alt.layer(
14    mark1,
15    mark2,
16).resolve_scale(
17    y="independent",
18)

resolve_scaleを使って、2軸グラフを作成できます。 サンプルではイベントレートと気温の時間変化を同じグラフに表示しています。 それぞれの軸の長さはalt.Scaleで調整できます。

リファレンス