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

时间:2019-10-27 20:46:26

标签: vega vega-lite

在我使用Vega Lite制作的图形中,即使数据仅包含整数值,我也看到刻度线为0.5步。有没有一种方法可以在Vega Lite中进行设置?我尝试查找“最小刻度步长”之类的内容或文档中类似的内容,但找不到类似的内容。

1 个答案:

答案 0 :(得分:1)

有两种方法可以执行此操作,具体取决于您的情况。例如,考虑以下图表:

{
  "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
}

enter image description here

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

{
  "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
}

enter image description here

如果希望将数据表示为定量数据,而只想调整刻度线间距,则可以使用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
}

enter image description here