Javascript Highcharts:x轴上的完全自定义标签位置

Javascript Highcharts:x轴上的完全自定义标签位置,javascript,highcharts,histogram,data-visualization,Javascript,Highcharts,Histogram,Data Visualization,我试图使用highcharts制作直方图,但服务器正在对数据进行压缩,据我所知,我无法使用直方图类型 这是我的图表: Highcharts.chart('container'{ 学分:{ 已启用:false }, 标题:{ 文本:空 }, xAxis:{ 类型:'类别', 标签:{ 轮换:-45 } }, 系列:[ { 类型:'variwide', showInLegend:false, 数据:[ {name:'0.00-10.10',y:13,z:1260000}, {名称:'10.10-3

我试图使用highcharts制作直方图,但服务器正在对数据进行压缩,据我所知,我无法使用直方图类型

这是我的图表:

Highcharts.chart('container'{
学分:{
已启用:false
},
标题:{
文本:空
},
xAxis:{
类型:'类别',
标签:{
轮换:-45
}
},
系列:[
{
类型:'variwide',
showInLegend:false,
数据:[
{name:'0.00-10.10',y:13,z:1260000},
{名称:'10.10-34.14',y:10,z:3000000},
{姓名:'34.14-54.56',y:9,z:2550000},
{姓名:'54.56-71.43',y:15,z:211000},
{姓名:'71.43-102.09',y:4.6,z:3830000},
{姓名:'102.09-161.56',y:1.8,z:7430000},
{姓名:'161.56-217.26',y:5.7,z:6960000},
{名称:'217.26-301.65',y:0.7,z:10550000},
{name:'301.65-382.82',y:2.8,z:10150000},
{name:'382.82-874.80',y:0.2,z:61500000}
]
}
]
});
#容器{
最大宽度:800px;
最小宽度:380px;
保证金:0自动;
}

Variwide系列不支持未分类的x轴。据github报道,这是一个问题:


解决方法:

Variwide可以使用列序列进行模拟

为每个点创建一个单独的系列,并通过将
linkedTo:':previous'
放在每个点中(第一个点除外)将它们链接在一起。然后为每个系列设置
pointRange
<代码>点范围
是序列的属性,不能分配给单个点-这就是为什么必须为每个点装箱单独序列的原因

  series: [{
    data: [
      [5, 99]
    ],
    pointRange: 2
  }, {
    linkedTo: ':previous',
    data: [
      [7.5, 72]
    ],
    pointRange: 3
  }, {
    linkedTo: ':previous',
    data: [
      [14, 111]
    ],
    pointRange: 10
  }]
点的x位置表示柱的中间。因此,如果
x
=5和
pointRange
=2,则该列的范围将从4到6

不幸的是,Highcharts在使用多个
pointRange
值时无法很好地处理极端情况。设置x轴最小值可修复此问题:

  xAxis: {
    min: 9, // 4 (axis' minimum) + 10 (max point range) / 2 = 9
  },
需要这些
绘图选项
,以获得适当的列宽度:

  grouping: false,
  groupPadding: 0,
  pointPadding: 0,
现场演示:


API参考:

你有没有想过让标签有更多的旋转?是的,这不是理想的想法。你能描述一下,当标签被紧紧地包装在一起时,你希望标签有什么样的表现和外观吗?@KamilKulig基本上是这样的