Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态创建高图表的值_Javascript_Highcharts - Fatal编程技术网

Javascript 动态创建高图表的值

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

我想为高端图表创建动态数据

我需要在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=['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点)是大括号数的比例。任何不匹配都会抛出错误。因此,请保持大括号数与数据同步。