К сожалению, угол текста недоступен в качестве канала кодирования.Лучшее, что вы можете сделать, - это вручную разделить данные и метки слоя под нужными углами;например:
import pandas as pd
import altair as alt
data = pd.DataFrame(
{
"x": [0, 1, 0, -1],
"y": [1, 0, -1, 0],
"name": ["UP", "RIGHT", "BOTTOM", "LEFT"],
"angle": [180, 270, 0, 90],
}
)
base = alt.Chart(data).encode(x="x", y="y", text="name")
layers = [
base.transform_filter(alt.datum.name == name).mark_text(angle=angle)
for (name, angle) in zip(data.name, data.angle)
]
alt.layer(*layers)