Я пытаюсь динамически установить ширину каждой точки x на основе количества ненулевых стеков с этим значением x.
Пример:
Что у меня есть:
![What I have](https://i.stack.imgur.com/5W0uk.png)
Что я хочу:
![What I want](https://i.stack.imgur.com/mDnZS.png)
Я хочу избавиться от пустых мест, уменьшив ширину каждой даты. (7 сентября должно иметь ширину 2, 8 сентября и 9 сентября должно иметь ширину 1 вместо всех 3 дат, имеющих ширину 3)
Вот более экстремальный пример, много потраченного впустую пространства:
![Real data example](https://i.stack.imgur.com/VNLY3.png)
Я просматривал диаграммы с переменным масштабом, но, похоже, не могу найти пример диаграммы с широким диапазоном, как с накоплением, так и с группировкой.
Самый близкий вопрос, который мне удалось найти в stackoverflow, это Отображать различное количество групп в диаграмме с накоплением столбцов Highcharts , но этот ответ не меняет ширину точек, он просто центрирует столбцы.
JSFiddle: http://jsfiddle.net/t3z76o4b/3/
$(function() {
$('#container').highcharts({
chart: {
type: 'column',
},
legend: {
enabled: false
},
title: {
text: 'Fruits by day'
},
xAxis: {
type: 'category',
labels: {
rotation: -45,
formatter: function() {
var placeholder = Number(this.value);
if (!!placeholder) {
return ""
}
//var obj = data[this.value];
if (this.axis.series[0].levelNumber == 1 && !this.isFirst) {
return '';
} else {
return this.value;
}
}
},
crosshair: true,
},
plotOptions: {
series: {
stacking: 'normal'
}
},
series: [{
name: "Apples",
stack: "Apples",
date: "7 Sep 2018",
data: [{
color: "rgba(51,193,59,1)",
name: "7 Sep 2018",
y: 1
},
{
color: "rgba(51,193,50,0.4)",
name: "7 Sep 2018",
y: 2
}],
},
{
name: "Blueberries",
stack: "Blueberries",
date: "7 Sep 2018",
data: [{
color: "rgba(51,50,250,1)",
name: "7 Sep 2018",
y: 3
},
{
color: "rgba(51,50,250,0.4)",
name: "7 Sep 2018",
y: 1
}],
},
{
name: "Oranges",
stack: "Oranges",
date: "8 Sep 2018",
data: [{
color: "rgba(250,193,10,0.5)",
name: "8 Sep 2018",
y: 1
}, ],
},
{
name: "Blueberries",
stack: "Blueberries",
date: "9 Sep 2018",
data: [{
color: "rgba(51,50,250,1)",
name: "9 Sep 2018",
y: 2
}],
},
]
});
});
В приведенном выше JSFiddle каждый элемент серии представляет определенный фрукт в определенный день:
- серия [0] = яблоки 7 сентября 2018
- серия [1] = Черника 7 сентября 2018
- серия [2] = Апельсины 8 сентября 2018
- серия [3] = черника в сентябре
9 2018
Заранее спасибо!