1年的highcharts x轴显示年份的刻度/标签+;1.
我有一个带x轴的highcharts柱状图,整整一年。其类型为1年的highcharts x轴显示年份的刻度/标签+;1.,highcharts,Highcharts,我有一个带x轴的highcharts柱状图,整整一年。其类型为datetime,其min/max为2014-01-01至2014-12-31 为什么会显示2015年1月的勾号/标签 完全来源于 我尝试了很多方法,比如将结束日期设置为date.UTC(2014,11,31,23,59,59),并尝试tickInterval。我最终需要的是一个月的刻度(即不规则的间隔)和刻度之间居中的标签。只有在图表具有固定宽度的情况下,使用一些巫毒逻辑来计算偏移量才有效 非常令人惊讶的是,对类型为areaspli
datetime
,其min
/max
为2014-01-01至2014-12-31
为什么会显示2015年1月的勾号/标签
完全来源于
我尝试了很多方法,比如将结束日期设置为date.UTC(2014,11,31,23,59,59)
,并尝试tickInterval
。我最终需要的是一个月的刻度(即不规则的间隔)和刻度之间居中的标签。只有在图表具有固定宽度的情况下,使用一些巫毒逻辑来计算偏移量才有效
非常令人惊讶的是,对类型为areaspline
的图表执行大致相同的操作效果良好:
我还检查了一些相关的SO问题,如和,但它们并不能解决我的问题。将最大日期设置为1.12,删除时间并将
最大填充设置为0值。在使用tiem(23:59:59)时,无法正确计算刻度间隔。第二个解决方案是使用
将最大日期设置为1.12,删除时间并将maxPadding
设置为0值。在使用tiem(23:59:59)时,无法正确计算刻度间隔。第二个解决方案是使用
您发布的。只需从type:'column'
更改为type:'line'
即可删除标签。为什么?
这是因为任何“类似列”的图表类型都有一个点范围
。根据上下文的不同,这有不同的定义,但对于datetime
x轴,它是():
在线性轴和日期时间轴上,范围将计算为两个最近数据点之间的距离
正是这个pointRange
使列具有特定的宽度。它们在x轴上有一个跨度。正如你在图表上看到的,每一列的范围都是一周,而不仅仅是一毫秒(这是折线图的情况,以及类似的情况)
据我所知,这会导致海图占用一些额外的空间,以更好地适应海图点的点范围
你可以做几件事。您可以手动覆盖点范围
,如下所示:
series: { pointRange: 1, data: ... }
xAxis: { min : Date.UTC(2014, 0, 1), max : Date.UTC(2014, 11, 28) }
这将使每列仅厚1毫秒,并删除标签。您可以使用pointWidth
固定宽度:
series: { pointRange: 1, pointWidth: 10, data: ... }
但是请注意,这是静态的,因此如果列突然变得太近,它们将开始重叠
此外,您也可以什么也不做,只需将max
设置为足够远,以便pointRange
不包含太多额外空间,如下所示:
series: { pointRange: 1, data: ... }
xAxis: { min : Date.UTC(2014, 0, 1), max : Date.UTC(2014, 11, 28) }
请注意,在12月29日之前,海图似乎会增加更多的空间。不幸的是,我不确定这个间隔是如何选择的(29号是星期一…?)
塞巴斯蒂安提出了一些根本不涉及这种操纵的解决方案。选择的“解决方案”取决于图表的其他要求和所需行为。您发布的。只需从type:'column'
更改为type:'line'
即可删除标签。为什么?
这是因为任何“类似列”的图表类型都有一个点范围
。根据上下文的不同,这有不同的定义,但对于datetime
x轴,它是():
在线性轴和日期时间轴上,范围将计算为两个最近数据点之间的距离
正是这个pointRange
使列具有特定的宽度。它们在x轴上有一个跨度。正如你在图表上看到的,每一列的范围都是一周,而不仅仅是一毫秒(这是折线图的情况,以及类似的情况)
据我所知,这会导致海图占用一些额外的空间,以更好地适应海图点的点范围
你可以做几件事。您可以手动覆盖点范围
,如下所示:
series: { pointRange: 1, data: ... }
xAxis: { min : Date.UTC(2014, 0, 1), max : Date.UTC(2014, 11, 28) }
这将使每列仅厚1毫秒,并删除标签。您可以使用pointWidth
固定宽度:
series: { pointRange: 1, pointWidth: 10, data: ... }
但是请注意,这是静态的,因此如果列突然变得太近,它们将开始重叠
此外,您也可以什么也不做,只需将max
设置为足够远,以便pointRange
不包含太多额外空间,如下所示:
series: { pointRange: 1, data: ... }
xAxis: { min : Date.UTC(2014, 0, 1), max : Date.UTC(2014, 11, 28) }
请注意,在12月29日之前,海图似乎会增加更多的空间。不幸的是,我不确定这个间隔是如何选择的(29号是星期一…?)
塞巴斯蒂安提出了一些根本不涉及这种操纵的解决方案。选择的“解决方案”取决于图表的其他要求和所需行为。“将最大日期设置为1.12”-uuhhm否,这违反了显示全年的要求。我需要12个月,而不仅仅是11个月。如果我修改你的小提琴使用最大日期31.12它显示了同样的问题。另外,您知道为什么我的面积样条线示例不受此影响吗?“将max date设置为1.12”-uuhhm no,这违反了显示全年的要求。我需要12个月,而不仅仅是11个月。如果我修改你的小提琴使用最大日期31.12它显示了同样的问题。另外,你知道为什么我的面积样条曲线示例没有出现这种情况吗?最适合我的是使用pointRange:1
和pointWidth
的动态值。最适合我的是使用pointRange:1
和pointWidth
的动态值。