Javascript }); }, 错误:函数(r){ 警报(r.responseText); }, 故障:功能(r){ 警报(r.responseText); } }); });
如果我理解正确,您想为每个不同的panelCodeUI绘制图表吗 如果是这种情况,请在AJAX成功后更改代码:Javascript }); }, 错误:函数(r){ 警报(r.responseText); }, 故障:功能(r){ 警报(r.responseText); } }); });,javascript,jquery,json,ajax,highcharts,Javascript,Jquery,Json,Ajax,Highcharts,如果我理解正确,您想为每个不同的panelCodeUI绘制图表吗 如果是这种情况,请在AJAX成功后更改代码: var productions = seriedata.d; var listPanelCodeUI = productions.map(function(p){return p.PanelCodeUI}).filter(function(item, pos, self) { return self.indexOf(item) == pos; }); //listPanelC
var productions = seriedata.d;
var listPanelCodeUI = productions.map(function(p){return p.PanelCodeUI}).filter(function(item, pos, self) {
return self.indexOf(item) == pos;
});
//listPanelCodeUI : [21,11,31]
listPanelCodeUI.sort();
listPanelCodeUI.forEach(function(e){
datamacro = [];
//Create a div for each panelCodeUI
$("body").append("<div id='barchart" + e + "'></div>");
var divId = "#barchart"+e;
//Filter productions for specific panelCodeUI
var data = productions.filter(function(p){return p.panelCodeUI === e});
data.forEach(function(d){
var yval = d.Value;
var xval = d.Date;
var x = [xval, yval];
datamacro.push(x);
});
$(function () {
$(divId).highcharts({
...
})
})
}
var productions=seriedata.d;
var listPanelCodeUI=productions.map(函数(p){return p.PanelCodeUI}).filter(函数(item,pos,self){
返回自身索引(项目)=位置;
});
//listPanelCodeUI:[21,11,31]
listPanelCodeUI.sort();
listPanelCodeUI.forEach(函数(e){
datamacro=[];
//为每个panelCodeUI创建一个div
$(“正文”)。追加(“”);
var divId=“#条形图”+e;
//筛选特定panelCodeUI的产品
var data=productions.filter(函数(p){return p.panelCodeUI==e});
data.forEach(函数(d){
var yval=d.值;
var xval=d.日期;
var x=[xval,yval];
datamacro.push(x);
});
$(函数(){
$(divId).highcharts({
...
})
})
}
这就是解析数据所需的:
charts = [];
$.each(productions.map(function(el) {
return el.PanelCodeUI;
}).filter(function(el, index, arr) {
return arr.indexOf(el) === index;
}), function(index,PanelCodeUI) {
var serie = productions.filter(function(el) {
return el.PanelCodeUI === PanelCodeUI;
});
$.each(serie, function(index, production) {
datamacro.push([production.Value, production.Date]);
});
drawChart('#barchart' + PanelCodeUI, 'LAST FIVE DAYS', datamacro);
});
此外,我还创建了这个帮助函数来创建图表:
function drawChart(containerID, chartTitle, data) {
charts.push(new Highchart.Chart({
chart: {
type: 'column',
renderTo: containerID
},
title: {
text: chartTitle
},
subtitle: {
text: ''
},
xAxis: {
type: "datetime",
tickInterval: 24 * 3600 * 1000,
labels: {
rotation: -45,
align: 'right'
},
dateTimeLabelFormats: { // don't display the dummy year
day: '%e. %b',
},
//crosshair: true
},
credits: {
enabled: false
},
yAxis: {
labels: {
enabled: false
},
title: {
text: null
}
},
tooltip: {
formatter: function() {
return Highcharts.dateFormat('%d/%m/%Y', new Date(this.x)) + '<br/>' + ' in barrels: ' + this.y;
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
},
series: {
pointRange: 24 * 3600 * 1000, // one day
pointInterval: 3600 * 1000
}
},
series: [{
//name: '',
showInLegend: false,
data: data,
dataLabels: {
enabled: true,
rotation: -90,
color: '#FFFFFF',
align: 'right',
format: '{point.y:.1f}', // one decimal
y: 10, // 10 pixels down from the top
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
}]
}));
}
功能绘图图(集装箱ID、图表标题、数据){
图表。推送(新高点图表。图表({
图表:{
键入:“列”,
集装箱船
},
标题:{
文本:图表标题
},
副标题:{
文本:“”
},
xAxis:{
键入:“日期时间”,
时间间隔:24*3600*1000,
标签:{
轮调:-45,
对齐:“右”
},
dateTimeLabelFormats:{//不显示虚拟年份
日期:'%e.%b',
},
//十字准星:对
},
学分:{
已启用:false
},
亚克斯:{
标签:{
已启用:false
},
标题:{
文本:空
}
},
工具提示:{
格式化程序:函数(){
返回Highcharts.dateFormat(“%d/%m/%Y”,新日期(this.x))+”
“+”,以桶为单位:“+this.Y;
}
},
打印选项:{
专栏:{
点填充:0.2,
边框宽度:0
},
系列:{
点范围:24*3600*1000,//一天
点间距:3600*1000
}
},
系列:[{
//名称:“”,
showInLegend:false,
数据:数据,
数据标签:{
启用:对,
轮换:-90,
颜色:“#FFFFFF”,
对齐:“右”,
格式:'{point.y:.1f}',//一位小数
y:10,//从顶部向下10像素
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
}]
}));
}
再次您好。我正在测试您的代码。由于drawChart函数的第一行出现错误。未定义图表。是否是另一个highchart条形图数组,因此我需要定义图表[]在这个功能之外的某个地方?我的错,忘了添加它。是的,它只是一个数组,如果你以后需要做一些事情,它可以存储所有的推车。如果你不打算在绘制图表后修改图表,你可以删除.push()
charts = [];
$.each(productions.map(function(el) {
return el.PanelCodeUI;
}).filter(function(el, index, arr) {
return arr.indexOf(el) === index;
}), function(index,PanelCodeUI) {
var serie = productions.filter(function(el) {
return el.PanelCodeUI === PanelCodeUI;
});
$.each(serie, function(index, production) {
datamacro.push([production.Value, production.Date]);
});
drawChart('#barchart' + PanelCodeUI, 'LAST FIVE DAYS', datamacro);
});
function drawChart(containerID, chartTitle, data) {
charts.push(new Highchart.Chart({
chart: {
type: 'column',
renderTo: containerID
},
title: {
text: chartTitle
},
subtitle: {
text: ''
},
xAxis: {
type: "datetime",
tickInterval: 24 * 3600 * 1000,
labels: {
rotation: -45,
align: 'right'
},
dateTimeLabelFormats: { // don't display the dummy year
day: '%e. %b',
},
//crosshair: true
},
credits: {
enabled: false
},
yAxis: {
labels: {
enabled: false
},
title: {
text: null
}
},
tooltip: {
formatter: function() {
return Highcharts.dateFormat('%d/%m/%Y', new Date(this.x)) + '<br/>' + ' in barrels: ' + this.y;
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
},
series: {
pointRange: 24 * 3600 * 1000, // one day
pointInterval: 3600 * 1000
}
},
series: [{
//name: '',
showInLegend: false,
data: data,
dataLabels: {
enabled: true,
rotation: -90,
color: '#FFFFFF',
align: 'right',
format: '{point.y:.1f}', // one decimal
y: 10, // 10 pixels down from the top
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
}]
}));
}