Php 如何创建具有3个不同系列类别名称的highchart
我目前正在创建一个新的highcart,我只是想知道这些是否可能在highcart中实现。我想创建一个包含3个类别的购物车 3个类别:Php 如何创建具有3个不同系列类别名称的highchart,php,jquery,highcharts,Php,Jquery,Highcharts,我目前正在创建一个新的highcart,我只是想知道这些是否可能在highcart中实现。我想创建一个包含3个类别的购物车 3个类别: $.getJSON('ajax/ams_sla_report_chart.php', function(data,name){ console.log(data); var json_data = ""; var json_name = ""; var chart = new Highcharts.Chart({
$.getJSON('ajax/ams_sla_report_chart.php', function(data,name){
console.log(data);
var json_data = "";
var json_name = "";
var chart = new Highcharts.Chart({
chart: {
renderTo: 'containers',
type: 'column',
inverted: false
},
legend: {
layout: 'horizontal',
align: 'right',
verticalAlign: 'middle'
},
yAxis: {
title: {
text: 'SLA PERCENTAGE'
}
},
title: {
text: 'Priority Based on SLA'
},
series:[{
name:'Low Priority',
colorByPoint: true,
data:data[0]
},
{
name:'Medium Priority',
colorByPoint: true,
data:data[1]
},
{
name:'High Priority',
colorByPoint: true,
data:data[2]
},
]
});
json_data = chart.series.data = data;
function showValues() {
$('#alpha-value').html(chart.options.chart.options3d.alpha);
$('#beta-value').html(chart.options.chart.options3d.beta);
$('#depth-value').html(chart.options.chart.options3d.depth);
}
// Activate the sliders
$('#sliders_eng input').on('input change', function () {
chart.options.chart.options3d[this.id] = parseFloat(this.value);
showValues();
chart.redraw(false);
});
showValues();
});
$.getJSON('ajax/ams_sla_report_chart.php', function(data,name){
console.log(data);
var json_data = "";
var json_name = "";
var chart = new Highcharts.Chart({
chart: {
renderTo: 'containers',
type: 'column',
inverted: false
},
legend: {
layout: 'horizontal',
align: 'right',
verticalAlign: 'middle'
},
yAxis: {
title: {
text: 'SLA PERCENTAGE'
}
},
title: {
text: 'Priority Based on SLA'
},
series:[{
name:'Low Priority',
colorByPoint: true,
data:data[0]
},
{
name:'Medium Priority',
colorByPoint: true,
data:data[1]
},
{
name:'High Priority',
colorByPoint: true,
data:data[2]
},
]
});
json_data = chart.series.data = data;
function showValues() {
$('#alpha-value').html(chart.options.chart.options3d.alpha);
$('#beta-value').html(chart.options.chart.options3d.beta);
$('#depth-value').html(chart.options.chart.options3d.depth);
}
// Activate the sliders
$('#sliders_eng input').on('input change', function () {
chart.options.chart.options3d[this.id] = parseFloat(this.value);
showValues();
chart.redraw(false);
});
showValues();
});
输出必须为:
$.getJSON('ajax/ams_sla_report_chart.php', function(data,name){
console.log(data);
var json_data = "";
var json_name = "";
var chart = new Highcharts.Chart({
chart: {
renderTo: 'containers',
type: 'column',
inverted: false
},
legend: {
layout: 'horizontal',
align: 'right',
verticalAlign: 'middle'
},
yAxis: {
title: {
text: 'SLA PERCENTAGE'
}
},
title: {
text: 'Priority Based on SLA'
},
series:[{
name:'Low Priority',
colorByPoint: true,
data:data[0]
},
{
name:'Medium Priority',
colorByPoint: true,
data:data[1]
},
{
name:'High Priority',
colorByPoint: true,
data:data[2]
},
]
});
json_data = chart.series.data = data;
function showValues() {
$('#alpha-value').html(chart.options.chart.options3d.alpha);
$('#beta-value').html(chart.options.chart.options3d.beta);
$('#depth-value').html(chart.options.chart.options3d.depth);
}
// Activate the sliders
$('#sliders_eng input').on('input change', function () {
chart.options.chart.options3d[this.id] = parseFloat(this.value);
showValues();
chart.redraw(false);
});
showValues();
});
Highcharts.chart('container'{
图表:{
类型:“列”
},
标题:{
文本:“基于优先级和命中率的SLA”
},
副标题:{
文本:'来源:WorldClimate.com'
},
xAxis:{
类别:[
“低”,
“中等”,
"高",,
],
十字准星:对
},
亚克斯:{
分:0,,
标题:{
文本:“基于百分比(mm)的SLA”
}
},
工具提示:{
headerFormat:“{point.key}”,
pointFormat:“{series.name}:”+
“{point.y}”,
页脚格式:“”,
分享:是的,
useHTML:true
},
打印选项:{
专栏:{
点填充:0.2,
边框宽度:0
}
},
系列:[{
名称:'关闭先生',
数据:[49.9,71.5,106.4]
}, {
名称:'打开先生',
数据:[83.6,78.8,98.5]
}, {
姓名:'总命中率',
数据:[48.9,38.8,39.3]
}, {
名称:“总MR命中率平均值”,
数据:[50,38.8,39.3]
}]
});代码>
您需要将数据预处理为Highcharts要求的格式:
var data = [
['Low Priority', 100, 9],
['Medium Priority', 100, 2],
['High Priority', 100, 1]
],
categories = [],
series = [];
data.forEach(function(arr) {
arr.forEach(function(el, i) {
if (i === 0) {
categories.push(el);
} else if (series[i - 1]) {
series[i - 1].data.push(el)
} else {
series.push({
data: [el]
});
}
});
});
Highcharts.chart('container', {
...
series: series
});
现场演示:嗨@DevGe,你能用硬编码数据创建一些现场示例吗?我知道您希望有3个类别,但我不知道您希望如何安排数据。当然,我会举一个例子@ppotaczek谢谢。嗨@ppotaczek我更新了我的postThanks,但现在您的JSON数据与图表上显示的不同。[['Low Priority',100,9],'Medium Priority',100,2],'High Priority',100,1]]
@ppotaczek-yah你说得对,那么是否可以推送数据以使输出像这样呢?是否可以自定义序列名称?因为每个元素值都有自己不同的名称。Hi@DevGe,是的,您也可以将序列名称放入数组中: