Добавьте три оси y с помощью Altair в Python

#python #plot #altair

Вопрос:

Я пытаюсь добавить третью ось y к диаграммам альтаира, это легко сделать всего с двумя осями y.

 base = alt.Chart(df).encode(alt.X('time'))

a = base.mark_line(opacity=0.6).encode(alt.Y('price'), color='green')
b = base.mark_point(opacity=0.6).encode(alt.Y('markout'), color='blue')
c = alt.layer(a, b).resolve_scale(y='independent')
 

Но если я использую этот метод, добавив третью ось y

 c = base.mark_line(opacity=0.6).encode(alt.Y('size'), color='lightgrey')
d = alt.layer(a,b,c).resolve_scale(y='independent')
 

Ось y будет накладываться справа.
введите описание изображения здесь

Есть ли способ добавить третью ось справа от второй? Что-то вроде этого введите описание изображения здесь

Ответ №1:

Вы можете смещать ось для третьего графика. Например

 c = (
    base.mark_line(opacity=0.6)
    .encode(
        alt.Y('size', axis=alt.Axis(offset=40)), 
        color='lightgrey'
    )
)