我们想使用Highcharts渲染以下图表。除了每个酒吧后面的深灰色背景外,我们已经完成了大部分工作。我们需要它们始终覆盖图表的整个宽度。
我们宁愿不添加新系列,因为灰色背景并不代表我们应用程序中的任何数据,它纯粹是一种美学选择。添加一个数据系列看起来像是一个黑客的感觉感觉要求。此外,现在我们必须自己管理轴,而不是让HighCharts为我们解决这个问题。
在HighCharts中可以做到这一点,还是我们坚持采用新的系列方法?
我没有将代码放在可以将其拉出的状态,但让我们从基于HighCharts示例开始:http://jsfiddle.net/92SFh/。我相信我可以适应我们在这里使用的任何技术。
$(function () {
$('#container').highcharts({
chart: {
type: 'bar'
},
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'],
title: {
text: null
}
},
yAxis: {
min: 0,
title: {
text: 'Population (millions)',
align: 'high'
},
labels: {
overflow: 'justify'
}
},
tooltip: {
valueSuffix: ' millions'
},
plotOptions: {
bar: {
dataLabels: {
enabled: true
}
}
},
series: [{
name: 'Year 2008',
data: [973, 914, 4054, 732, 34]
}]
});
});
答案 0 :(得分:3)
这应该让你非常接近。它使用highcharts圆角插件并对系列进行取消组合以使它们重叠。您可以根据自己的喜好进行修改。
要使用插件获取圆角,请将其添加到系列中:
borderRadiusTopLeft: 8,
borderRadiusTopRight: 8
并使它们不重叠......
plotOptions: {
bar: {
dataLabels: {
enabled: true
},
grouping: false
}
},
答案 1 :(得分:1)
除了使用系列之外,还有另一种解决方案。事实上,还有其他三个选项,其中没有一个是容易的,所以:
plotBands
- 仅适用于固定数量的条形图和图表的固定高度:http://jsfiddle.net/92SFh/4/ 我认为第三种选择对你来说是最好的,但需要更多关于Highcharts核心的知识。
关于yAxis的最小值/最大值 - 你不必计算任何东西。只需创建第二个yAxis,它不会连接到第一个yAxis,设置maxPadding: 0
并将该虚拟系列链接到第二个yAxis。该系列中第二个yAxis的所有值都可以是任何值(但必须相同!)。