首页 > 解决方案 > Altair:从偏移量向下指向的条形图

问题描述

我正在尝试使用 altair 重现以下可视化:

在此处输入图像描述

棘手的部分是从 100 指向下方的条形图。在过去,我会使用 matplotlib 并从数据中减去 100,但保留旧标签的刻度。幸运的是,Altair 非常忠实于数据,所以这个技巧似乎不起作用。

有没有办法抵消酒吧的“原点”?还是有任何其他技巧可以产生预期的结果?

这是相关的最小示例代码:

import altair as alt
import pandas as pd

data = pd.DataFrame({
    'num': [0, 1],
    'value': [80, 120],
})

alt.Chart(data).mark_bar().encode(x='num', y='value')

标签: pythonaltairvega-lite

解决方案


您可以通过使用y2编码来指定基线来做到这一点。调整你的例子:

alt.Chart(data).transform_calculate(
  baseline='100'
).mark_bar(
  orient='vertical'
).encode(
  x='num', y='value', y2='baseline:Q'
)

在此处输入图像描述


推荐阅读