Altair 散点图 tickMinStep

Altair Scatter Plot tickMinStep

我有这个数据框:

    x           y           term        s
0   0.000000    0.132653    matlab      0.893072
1   0.000000    0.142857    matrix      0.905120
2   0.012346    0.153061    laboratory  0.902610
3   0.987654    0.989796    be          0.857932
4   0.938272    0.959184    a           0.861948

并生成了这张图表:

使用此代码:

chart = alt.Chart(scatterdata_df).mark_circle().encode(
        x = alt.X('x:Q', axis = alt.Axis(title = "⏪  less physical | more physical ⏩", tickMinStep = 0.05)),
        y = alt.Y('y:Q', axis = alt.Axis(title = "⏪  less data | more data ⏩", tickMinStep = 0.05)),
        color = alt.Color('s:Q', scale=alt.Scale(scheme='redblue')),
        tooltip = ['term']
    ).properties(
        width = 500,
        height = 500
    )

为 x 轴和 y 轴设置 tickMinStep = 0.05 后,我不确定为什么图形不反映此参数。

谢谢。

tickMinStep 指定自动确定刻度的最小刻度间距;实际刻度间距可能比这大。听起来你想要比默认启发式更多的刻度,所以你应该直接调整 tickCount

import altair as alt
import pandas as pd
import numpy as np

rng = np.random.default_rng(0)

data = pd.DataFrame({
    'x': rng.random(size=100),
    'y': rng.random(size=100)
})

alt.Chart(data).mark_point().encode(
    x=alt.X('x:Q', axis=alt.Axis(tickCount=20)),
    y=alt.Y('y:Q', axis=alt.Axis(tickCount=20)),
)

如果您想更好地控制刻度值,可以将值列表直接传递给 Axis.values。有关详细信息,请参阅 alt.Axis 文档。