【问题标题】:Vega-lite default bar width strangeVega-lite 默认条形宽度奇怪
【发布时间】:2020-06-25 02:06:07
【问题描述】:

我看到了以下风格奇特的图表。我知道我可以显式更改 padding 等,但默认的 vega-lite 布局通常非常好。我很困惑我在做什么导致这种不正常的行为。谢谢! Here is the code in the vega-lite editor

我知道我也可以将 x 的 type 更改为 ordinal 以使样式更好,但我不确定我是否仍然理解为什么我看到的不同。我需要类型是定量的,所以我得到了最小/最大画笔边界,而不是集合。

此外,在阅读https://vega.github.io/vega-lite/docs/scale.html 此处的文档后,我什至不知道如何手动设置条形宽度。如果有人可能有一个很好的工作示例。

谢谢。

【问题讨论】:

    标签: vega-lite


    【解决方案1】:

    由于您将“x”声明为定量字段,因此无法假设沿轴的点是均匀分布的。例如,您可以在其他数据点之间添加一些数据点:

          {"ShareWomen_bin": 0.83, "count": 40, "is_overview": true},
          {"ShareWomen_bin": 0.87, "count": 70, "is_overview": true},
    

    你会看到它们呈现在其他栏之间:

    正如您所提到的,您可以指定应该将条形编码为序数值。另一种解决方案是将其保留为定量,但指定它是分箱的,在这种情况下,条形也将呈现为好像它们是有序的:

        "x": {"field": "ShareWomen_bin", "type": "quantitative", "bin": true},
    

    由于您的数据似乎已经被分箱,您应该阅读有关 vega-lite 如何支持预分箱数据:https://vega.github.io/vega-lite/docs/bin.html#binned

    【讨论】:

      【解决方案2】:

      正如@marcprux 提到的,有预分箱支持,因此您不必在此处重复分箱转换。但是,目前 prebinned 支持同时需要 bin_startbin_end

      现在您可以修改规范以派生新的 bin_end 字段并将其与 x2 一起使用。

      {
        "data": ...
        "transform": [{
          "calculate": "datum.ShareWomen_bin+0.1",
          "as": "ShareWomen_bin_end"
        }],
        "mark": "bar",
        "encoding": {
          "x": {"bin": {"binned": true, "step": 0.1}, "field": "ShareWomen_bin", "type": "quantitative", "title": "ShareWomen_bin"},
          "x2": {"field": "ShareWomen_bin_end"},
          "y": {"field": "count", "type": "quantitative"}
        }
      }
      

      喜欢这个spec

      我可以看到我们不应该要求派生 bin_end,因此创建了一个问题来跟踪此功能请求:https://github.com/vega/vega-lite/issues/6086

      顺便说一句,量化比例只影响条形位置。

      要直接设置条形大小,可以在标记定义中使用 size 属性:

      mark: {type: "bar", size: 5}
      

      【讨论】:

      • 谢谢火腿!是的,我会直接设置条形大小;这似乎是最直接的。
      • 另外,这可能是一个特性蠕变,但我认为即使使用定量,您仍然可以通过添加最后一个样式修改步骤来设置宽度,使间隙合理。我认为这是一个比bin_end 更好的功能,但可能更复杂。
      猜你喜欢
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 2016-05-18
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多