我想根据 pandas DataFrame 的列中指定的值旋转文本。看来 text_config
的 angle
参数只接受浮点值,没有特征名称。
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},
}
)
alt.Chart(data).encode(x="x", y="y", text="name").mark_text(angle='angle')
最佳答案
不幸的是,文本角度不能用作编码 channel 。您能做的最好的事情就是以所需的角度手动分割数据和图层标记;例如:
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)
关于python - Altair:按功能中指定的值旋转文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55991996/