1年的highcharts x轴显示年份的刻度/标签+;1.

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

我有一个带x轴的highcharts柱状图,整整一年。其类型为
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
的动态值。