【发布时间】:2016-10-14 18:14:14
【问题描述】:
我正在使用 Google 图表来可视化一些指标,但我遇到了一些障碍。现在我有一个看起来像这样的条形图(下面的代码) 而它背后的代码是
Javascript
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', { 'packages': ['bar', 'corechart'] });
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Branch Office', 'DataSet 1', 'DataSet 2', 'DataSet 3'],
['Chicago', 400, 500, 1000],
['New York', 400, 500, 1000],
['Seattle', 400, 500, 1000],
['Average', 400, 500, 1000]
]);
var options = {
chart: {
//title: 'Sales Order Performance',
//subtitle: 'Sales, Expenses, and Profit: 2014-2017',
},
bars: 'horizontal', // Required for Material Bar Charts.
hAxis: { format: 'decimal' },
height: 400,
colors: ['#1b9e77', '#d95f02', '#7570b3']
};
var chart = new google.charts.Bar(document.getElementById('chart_div'));
chart.draw(data, google.charts.Bar.convertOptions(options));
var btns = document.getElementById('btn-group');
btns.onclick = function (e) {
if (e.target.tagName === 'BUTTON') {
options.hAxis.format = e.target.id === 'none' ? '' : e.target.id;
chart.draw(data, google.charts.Bar.convertOptions(options));
}
}
}
</script>
html
<body>
<div id="chart_div"></div>
</body>
从一些类似的答案中,我得到的最接近的是修改一些已经发布的小提琴,但似乎没有什么能完全符合我的需要。我正在尝试将我提供的图表与堆积条形图结合起来(如 here 所演示和解释的那样,但我在 Google 或 Stack Overflow 上看到的所有一次性小技巧并没有让我得到我需要的东西.
我本质上希望“DataSet 3”栏能够分解成与此类似的栏
如何将已有的图表转换为每个数据点有 3 个条形的堆叠条形图?如果不能做到这一点,我能做的最接近的结果是什么?
编辑:忘记添加我之前提到的小提琴。这已经接近我需要http://jsfiddle.net/qv325979/126/ 的最终结果,但它仍然不太正确,我开始使用的示例必须进行大量修改才能达到这一点。我基本上是想把它放到有 3 个条(而不是 2 个)的位置,并且每个项目的顶部 2 个条有 1 个数据点,底部条可以分成 5 个左右。
我不完全理解如何分解这些条,以及为什么该小提琴中的顶部条有 5 个单独的段,而红色条只有 1 个,所以如果有更多知识的人可以解释为什么这也将不胜感激。
【问题讨论】:
-
在小提琴中,设置
series.5选项,从堆栈中断开最后一列... -
谢谢@WhiteHat,那么在我有 2 个只有 1 个段的条形图,然后是 5 个左右的第 3 个条形图的情况下,实现预期结果的方法是什么?
标签: javascript charts asp.net-core google-visualization