无法获取自定义轴刻度值以在 vega-lite 中用于日期字段

问题描述 投票:0回答:1

作为参考,我有一个折线图,其中每周显示一个点 (x),基于一周的第一天,跨越多年(颜色)。但是,我不希望 X 轴读为 W01-W52,因为它更直观地显示一周发生在哪个月份。所以我希望轴刻度从每个月的第一天开始。

这就是我当前的格式化方式(使用 Clojure,因此使用 .EDN 而不是 .JSON,但应该很容易看到我在做什么)。

   {:x {:title "Week"
        :timeUnit "week"
        :field :WeekBeginning
        :type "temporal"
        :axis {:format "%b"
               :labelExpr "datum.label[0]"
               :tickCount 12}}

不幸的是,刻度线不会以这种方式在每个月初开始,因此例如“二月”刻度线/线位于二月中旬,其中一些点在其前面,一些点在其后面。

当我尝试像这样显式设置刻度时,我根本没有得到任何刻度:

   {:x {:title "Week"
        :timeUnit "week"
        :field :WeekBeginning
        :type "temporal"
        :axis {:format "%b"
               :labelExpr "datum.label[0]"
               :ticks true
               :values ["2024-01-01" "2024-02-01" "2024-03-01" "2024-04-01"
                        "2024-05-01" "2024-06-01" "2024-07-01" "2024-08-01"
                        "2024-09-01" "2024-10-01" "2024-11-01" "2024-12-01"]}}

有人成功地做过类似的事情吗?

vega-lite
1个回答
0
投票
   {:x {:title "Week"
        :timeUnit "yearmonthdate"
        :field :WeekBeginning
        :axis {:format "%b"
               :labelAlign "left"
               :labelExpr "datum.label[0]"
               :timeUnit "month"
               :tickCount 12}}

更新:我最终将线的

timeUnit
移至
"yearmonthdate"
,将轴的
timeUnit
移至
"month"
,并能够按照我想要的方式设置格式。

© www.soinside.com 2019 - 2024. All rights reserved.