Altair 面积图显示不正确(尽管作为条形图看起来不错)

Altair Area Chart Doesn't Display Properly (though It looks fine as a Bar Chart)

我无法确定为什么同一数据集的 area chart looks so unusual, while a bar chart 前半部分看起来完全正常。

这里是csv格式的dataframe数据:

Month,Poll_Num
SEP,29.7
AUG,28.8
JUL,29.9
JUN,30.3
MAY,35.9
APR,32.2
MAR,30.6
FEB,28.5
JAN,29.9
DEC,22.2
NOV,27.2

我使用以下代码将此数据绘制为条形图:

alt.Chart(dataframe).mark_bar().encode(
    x=alt.X('Month', sort=list(dataframe.Month)),
    y=alt.Y('Poll_Num'))

要从同一个数据框创建面积图,我所做的只是调用 mark_area() 方法而不是 mark_bar()

alt.Chart(dataframe).mark_area().encode(
    x=alt.X('Month', sort=list(dataframe.Month)),
    y=alt.Y('Poll_Num'))

关于我可能做错了什么的任何想法,或者是什么导致了这个看起来不寻常的面积图?

这是因为您使用旧版本的 vega-lite 渲染图表 - 该错误已在 vega-lite 3.4 中修复。使用 Vega-Lite 3.3 或更早版本呈现的图表版本不正确,如下所示:

使用 Vega-Lite 3.4 或更新版本呈现的图表的正确版本如下所示:

要修复它,请确保您的前端渲染器是最新的。如何执行此操作取决于您使用的前端:

  • 对于 JupyterLab:更新到最新版本的 JupyterLab(vega-lite 渲染器与其捆绑在一起)
  • 对于 Jupyter Notebook:将 vega 包更新到最新版本 (pip install -U vega)。
  • 对于 ColabKaggle 或 Altair 的内置 serve() 方法:确保您使用的是 Altair 3.2 版或更新版本 (pip install -U altair).