首页 > 解决方案 > 为 altair Axis 设置 tickMinStep?

问题描述

我正在尝试设置tickMinStepx 轴,altair以便每两个而不是每一个出现刻度线。

这是我找到tickMinStep参数的文档。 https://altair-viz.github.io/user_guide/generated/core/altair.Axis.html

这是我正在使用的示例代码:

import altair as alt
from vega_datasets import data

source = data.movies.url

chart = alt.Chart(source).mark_bar().encode(
    alt.X('IMDB_Rating:Q', axis=alt.Axis(title='Rating')),
    alt.Y('count()',title="Number of Movies"),
)

这两种方式都设置失败tickMinStep,返回SchemaValidationError: Invalid specification。任何想法为什么这些失败?

1:

chart.configure_axisX(tickMinStep=2)

2:

chart = alt.Chart(source).mark_bar().encode(
    alt.X('IMDB_Rating:Q', axis=alt.Axis(title='Rating', tickMinStep=2)),
    alt.Y('count()',title="Number of Movies"),
)

标签: pythonaltair

解决方案


第一种方法不起作用,因为tickMinStep它不是可配置的选项(它不是 支持的参数之一alt.AxisConfig)。

tickMinStep选项是alt.Axis在 Altair 3.0 版中添加的,因此尝试将它与旧版 Altair 一起使用会导致您看到的架构错误。更新您的 Altair 安装,您的第二个代码块应该可以正常工作。


推荐阅读