【发布时间】:2023-03-10 14:15:01
【问题描述】:
我正在制作一个在 x 轴上使用时间刻度的条形图。
每个条形代表一个月,因此所有日期都设置为 YYYY-MM,当我加载数据时,我会使用:
var parseDate = d3.time.format("%Y-%m").parse;
问题在于每个月的天数不同,一些条形图比其他条形图更接近,而不是具有相同的边距,如您在此屏幕截图中所见:
你可以在这里找到代码,http://tributary.io/inlet/8700564
谢谢
【问题讨论】:
-
y轴上的数据是什么?根据它是什么,我们可以标准化每个元素的宽度。例如某个月 X 发生了多少次。
-
这个月的销售额。每个月只有一个酒吧。
-
由于月份中的天数无关紧要,因此只需将每个条形的宽度设置为某个静态值。例如,它们都可以是 40 像素。更改第 124 行:
var barWidth = 40;并且它们的宽度都相同。 tributary.io/inlet/8716416 -
但问题不在于条形宽度。它是动态的,因为它有 3 个显示 7 12 或 30 条的过滤器,所以我根据图表宽度/条数计算宽度。问题是由于月份之间的天数不同,它们之间的空间宽度不同。此外,在您的代码中,您可以看到所有条形都非常接近,但最后一个有一个空格。
标签: javascript d3.js data-visualization graph-visualization