仅在 Vega Lite 中显示整数值的刻度

Only show ticks at integer values in Vega Lite

在我使用 Vega Lite 制作的图表中,我看到了 0.5 步的刻度,即使数据只包含整数值。有没有办法在 Vega Lite 中设置它?我尝试在文档中寻找类似 "minimum tick step" 或类似内容的内容,但找不到类似的内容。

有几种方法可以做到这一点,具体取决于您的情况。例如,考虑这张图表:

{
  "data": {
    "values": [
      {"x": 1, "y": 1},
      {"x": 2, "y": 3},
      {"x": 3, "y": 4},
      {"x": 4, "y": 2}
    ]
  },
  "mark": "point",
  "encoding": {
    "x": {"type": "quantitative", "field": "x"},
    "y": {"type": "quantitative", "field": "y"}
  },
  "width": 400
}

如果您的所有值都是整数并且您只关心整数,则可能是您的数据更适合用序数值表示(即有序分类数据)。如果是这样,您可以通过指定序数类型来删除刻度:

{
  "data": {
    "values": [
      {"x": 1, "y": 1},
      {"x": 2, "y": 3},
      {"x": 3, "y": 4},
      {"x": 4, "y": 2}
    ]
  },
  "mark": "point",
  "encoding": {
    "x": {"type": "ordinal", "field": "x"},
    "y": {"type": "quantitative", "field": "y"}
  },
  "width": 400
}

如果您希望您的数据以定量表示,但只想调整刻度间距,您可以使用 axis.tickMinStep 属性:

{
  "data": {
    "values": [
      {"x": 1, "y": 1},
      {"x": 2, "y": 3},
      {"x": 3, "y": 4},
      {"x": 4, "y": 2}
    ]
  },
  "mark": "point",
  "encoding": {
    "x": {"type": "quantitative", "field": "x", "axis": {"tickMinStep": 1}},
    "y": {"type": "quantitative", "field": "y"}
  },
  "width": 400
}