Javascript 动态创建高图表的值
我想为高端图表创建动态数据 我需要在x轴上生成动态值Javascript 动态创建高图表的值,javascript,highcharts,Javascript,Highcharts,我想为高端图表创建动态数据 我需要在x轴上生成动态值 xAxis: { categories:['project1','project2'] }, 这是我的for循环 var project = []; for(var i=0;i<project.name;i++){ //new array } var项目=[]; 对于(var i=0;i,可以将数组变量作为参数传递给图表的“类别”选项 例如: // Original array var categories1=['Ja
xAxis: {
categories:['project1','project2']
},
这是我的for循环
var project = [];
for(var i=0;i<project.name;i++){
//new array
}
var项目=[];
对于(var i=0;i,可以将数组变量作为参数传递给图表的“类别”选项
例如:
// Original array
var categories1=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
// Copy and/or modifify the second array content and do some stuff
var categories2=[];
for(var i=0;i<categories1.length;i++){
categories2.push(categories1[i]);
}
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
categories: categories2 // reference categories to an array variabile
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
//原始数组
风险值分类1=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月']
//复制和/或修改第二个数组内容并执行一些操作
var分类2=[];
对于(var i=0;i我正在使用一个JSON数据,经过很长一段时间后能够解决它。我的要求是获取JSON数据,然后根据我的数据要求创建一个映射对象。并为图表动态创建序列。我能够创建序列,但图表中没有任何内容
这是因为数字必须转换为Int。当我使用parseInt时,它对我很有用
步骤1:我得到JSON数据,在操作之后它看起来是这样的:seriesData={“O”:series1},{“A”:Series2},{“S”:Series3}]
var options = {
chart: {
renderTo: 'demoGraph',
type: 'column'
},
title: {
text: 'Stacked column chart'
},
xAxis: {
categories: [1, 2, 3, 4, 5,6],
title: {
text: 'Severity'
},
},
yAxis: {
min: 0,
title: {
text: 'Total Defects with Severity - 1,2,3,4,5,6'
},
stackLabels: {
enabled: true,
style: {
fontWeight: 'bold',
color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
}
}
},
legend: {
align: 'right',
x: -70,
verticalAlign: 'top',
y: 20,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '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',
style: {
textShadow: '0 0 3px black, 0 0 3px black'
}
}
}
},
series: [{},{},{},{},{},{}],
};
for(var i in seriesData ){
for(var j in seriesData [i]){
options.series[i].name = j;
options.series[i].data = seriesData [i][j];
break;
}
}
var chart = new Highcharts.Chart(options);
var选项={
图表:{
renderTo:“人口统计”,
类型:“列”
},
标题:{
文本:“堆叠柱形图”
},
xAxis:{
类别:[1,2,3,4,5,6],
标题:{
文本:“严重性”
},
},
亚克斯:{
分:0,,
标题:{
正文:“严重程度为-1,2,3,4,5,6的总缺陷”
},
堆叠标签:{
启用:对,
风格:{
fontWeight:'粗体',
颜色:(Highcharts.theme&&Highcharts.theme.textColor)| |“灰色”
}
}
},
图例:{
对齐:“右”,
x:-70,
垂直排列:“顶部”,
y:20,
浮动:是的,
背景颜色:(Highcharts.theme&&Highcharts.theme.background2)| |“白色”,
边框颜色:“#CCC”,
边框宽度:1,
影子:错
},
工具提示:{
格式化程序:函数(){
返回“+this.x+”
+
this.series.name+':'+this.y+'
+
“总计:”+this.point.stackTotal;
}
},
打印选项:{
专栏:{
堆叠:“正常”,
数据标签:{
启用:对,
颜色:(Highcharts.theme&&Highcharts.theme.dataLabelsColor)| |“白色”,
风格:{
textShadow:'0 0 3px黑色,0 0 3px黑色'
}
}
}
},
系列:[{},{},{},{},{},{},{},{}],
};
用于(系列数据中的var i){
对于(系列数据[i]中的var j){
options.series[i].name=j;
options.series[i].data=seriesData[i][j];
打破
}
}
var图表=新的Highcharts.图表(选项);
另一种方法:
var Series2 = [1,1,1,2,2,2];
var names=['O','A'];
var data1=Series2,seriesArray; //seriesArray is formed dynamically - array of int values
options.series = [{name: names, data: data1}]
这可以正常工作你想要这样的东西吗?谢谢,正是我需要的好,我会把它作为答案发布,但这种方法的一个缺点是花括号的数量。需要的绘图列/数据的数量(如3列代表1点)是大括号数的比例。任何不匹配都会抛出错误。因此,请保持大括号数与数据同步。