I'm using highcharts stacked and group column to make the following graph:
IMAGE
I haven't been able to get it working, I have the following code:
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
title: {
text: 'Types of answer'
},
subtitle: {
text: 'SORT BY: Ages'
},
xAxis: {
categories: ['First Test','Second Test','Third Test']
},
yAxis: {
min: 0,
title: {
text: 'Numero de pacientes'
},
stackLabels: {
enabled: true,
style: {
fontWeight: 'bold',
color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
}
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -150,
y: -13,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',
borderColor: '#CCC',
borderWidth: 1,
shadow: false
},
tooltip: {
formatter: function() {
return '<b>'+ this.x +'</b><br/>'+
this.series.name +': '+ this.y +'<br/>'+
'Total: '+ this.point.stackTotal;
}
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: true,
color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
}
}
},
series: [{
name: 'Answer 1',
data: [variable1, variable7, variable13],
stack: 'Less than 18',
data: [variable19, variable25, variable31],
stack: 'More than 18'
},{
name: 'Answer 2',
data: [variable2, variable8, variable14],
stack: 'Less than 18',
data: [variable20, variable26, variable32],
stack: 'More than 18'
},{
name: 'Answer 3',
data: [variable3, variable9, variable15],
stack: 'Less than 18',
data: [variable21, variable27, variable33],
stack: 'More than 18'
}]
});
});
});
I dont want to use another series because I dont want them to appear in the legend, I want the legend to only list
You can link multiple series into one legend item for hiding and showing and what not using the linkedTo property in the series -
http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/arearange-line/
series: [{
name: 'Temperature',
data: averages,
zIndex: 1,
marker: {
fillColor: 'white',
lineWidth: 2,
lineColor: Highcharts.getOptions().colors[0]
}
}, {
name: 'Range',
data: ranges,
type: 'arearange',
lineWidth: 0,
linkedTo: ':previous',
color: Highcharts.getOptions().colors[0],
fillOpacity: 0.3,
zIndex: 0
}]
You need to separate the stack groups in your series. You series should look similar to this:
series: [ {
name: 'Answer 1',
data: [variable1, variable7, variable13],
stack: 'Less than 18'
},
{
name: 'Answer 1',
data: [variable19, variable25, variable31],
stack: 'More than 18'
},
{
name: 'Answer 2',
data: [variable2, variable8, variable14],
stack: 'Less than 18'
},
{
name: 'Answer 2',
data: [variable20, variable26, variable32],
stack: 'More than 18'
},
{
name: 'Answer 3',
data: [variable3, variable9, variable15],
stack: 'Less than 18'
},
{
name: 'Answer 3',
data: [variable21, variable27, variable33],
stack: 'More than 18'
}
]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With