如何自定义HighCharts多分布图表的Y轴排列顺序?
解决Highcharts多areasplinerange系列Y轴排列与图例顺序匹配的问题
首先明确:dataSorting配置是用来排序单个系列内部的数据点的,比如调整某一分布的X轴数据顺序,完全无法控制系列之间在Y轴上的排列位置——这就是你之前操作无效的核心原因。
要让Y轴上的系列排列和图例从上到下的顺序一致,可按以下步骤调整:
手动指定Y轴分类顺序
将Y轴的categories数组按你想要的排列顺序(vanilla、coconut、strawberry...)写死,彻底摆脱Highcharts的自动排序逻辑:yAxis: { categories: ["vanilla", "coconut", "strawberry", "orange", "chocolate", ...], // 其他Y轴配置 }绑定系列与Y轴分类索引
每个areasplinerange系列的数据中,把y值设为对应分类在categories数组里的索引。比如vanilla对应索引0,coconut对应索引1,以此类推:series: [ { name: "vanilla", data: [[xMin, xMax, 0], ...] // 最后一个数值为Y轴分类索引 }, { name: "coconut", data: [[xMin, xMax, 1], ...] }, // 其余系列按categories顺序依次配置 ](若希望图例首个系列显示在Y轴顶部,可将索引反向设置,比如给vanilla分配最大的索引值)
保持图例与系列添加顺序一致
图例的默认顺序就是系列的添加顺序,只要按categories的顺序添加系列,图例从上到下的顺序就会和Y轴排列完全匹配。
另外补充你代码里的一个小错误:plotOptions中marker和states的写法不需要用字符串包裹对象,应直接写对象格式:
plotOptions: { areasplinerange: { marker: { enabled: false }, states: { hover: { enabled: false } } }, // 其他配置 }
内容的提问来源于stack exchange,提问作者brambori
相关产品推荐
相关产品推荐

