Javascript 一页2张画布图表问题,

Javascript 一页2张画布图表问题,,javascript,jquery,html,charts,canvasjs,Javascript,Jquery,Html,Charts,Canvasjs,我试着在一个html页面中放置两个Canvasjs图表。我已经包括了jquery,当我只放置一个图表div时它就可以工作了,一旦我添加了第二个图表,它就会显示错误,只显示一个图表 我想在一页中显示2个或更多图表,是否可能 这是我的密码。多谢各位 window.onload=函数(){ var chart=new CanvasJS.chart(“chartContainer”{ 数据:[ { 键入:“列”, 数据点:[ {x:10,y:10}, {x:20,y:15}, {x:30,y:25}

我试着在一个html页面中放置两个Canvasjs图表。我已经包括了jquery,当我只放置一个图表div时它就可以工作了,一旦我添加了第二个图表,它就会显示错误,只显示一个图表

我想在一页中显示2个或更多图表,是否可能

这是我的密码。多谢各位


window.onload=函数(){
var chart=new CanvasJS.chart(“chartContainer”{
数据:[
{
键入:“列”,
数据点:[
{x:10,y:10},
{x:20,y:15},
{x:30,y:25},
{x:40,y:30},
{x:50,y:28}
]
}
]
});
chart.render();
}
window.onload=函数(){
var图表=新的CanvasJS.chart(“chartContainer2”);
chart.options.axisY={前缀:“$”,后缀:“K”};
chart.options.title={text:“第一和第二季度销售的水果”};
var series1={//dataSeries-第一季度
键入:“列”,
名称:“第一季度”,
showInLegend:对
};
var series2={//dataSeries-第二季度
键入:“列”,
名称:“第二季度”,
showInLegend:对
};
chart.options.data=[];
图表.选项.数据.推送(系列1);
图表.选项.数据.推送(系列2);
series1.dataPoints=[
{标签:“香蕉”,y:18},
{标签:“橙色”,y:29},
{标签:“苹果”,y:40},
{标签:“芒果”,y:34},
{标签:“葡萄”,y:24}
];
series2.dataPoints=[
{标签:“香蕉”,y:23},
{标签:“橙色”,y:33},
{标签:“苹果”,y:48},
{标签:“芒果”,y:37},
{标签:“葡萄”,y:20}
];
chart.render();
}

首先,您不需要两个window.onload函数。第二个onload函数将覆盖第一个函数。所以只要有一个,并在其中一个中包含两个图表代码

另外,要创建的第一个图表需要id为
chartContainer
的元素,该元素在DOM中不存在。将其替换为
chartContainer1

替换

var chart = new CanvasJS.Chart("chartContainer", {...});

两个图表都使用两个变量,而不是使用一个变量
chart
,这样变量就不会被覆盖。像这样的

window.onload = function(){
  var chart1 = new CanvasJS.Chart("chartContainer1", {
    data: [{
      type: "column",
      dataPoints: [{
        x: 10,
        y: 10
      }, {
        x: 20,
        y: 15
      }, {
        x: 30,
        y: 25
      }, {
        x: 40,
        y: 30
      }, {
        x: 50,
        y: 28
      }]
    }]
  });

  chart1.render();

  var chart2 = new CanvasJS.Chart("chartContainer2");

  chart2.options.axisY = {
    prefix: "$",
    suffix: "K"
  };
  chart2.options.title = {
    text: "Fruits sold in First & Second Quarter"
  };

  var series1 = { //dataSeries - first quarter
    type: "column",
    name: "First Quarter",
    showInLegend: true
  };

  var series2 = { //dataSeries - second quarter
    type: "column",
    name: "Second Quarter",
    showInLegend: true
  };

  chart2.options.data = [];
  chart2.options.data.push(series1);
  chart2.options.data.push(series2);


  series1.dataPoints = [{
    label: "banana",
    y: 18
  }, {
    label: "orange",
    y: 29
  }, {
    label: "apple",
    y: 40
  }, {
    label: "mango",
    y: 34
  }, {
    label: "grape",
    y: 24
  }];

  series2.dataPoints = [{
    label: "banana",
    y: 23
  }, {
    label: "orange",
    y: 33
  }, {
    label: "apple",
    y: 48
  }, {
    label: "mango",
    y: 37
  }, {
    label: "grape",
    y: 20
  }];

  chart2.render();
};

这里是一个演示程序。首先,您不需要两个window.onload函数。第二个onload函数将覆盖第一个函数。所以只要有一个,并在其中一个中包含两个图表代码

另外,要创建的第一个图表需要id为
chartContainer
的元素,该元素在DOM中不存在。将其替换为
chartContainer1

替换

var chart = new CanvasJS.Chart("chartContainer", {...});

两个图表都使用两个变量,而不是使用一个变量
chart
,这样变量就不会被覆盖。像这样的

window.onload = function(){
  var chart1 = new CanvasJS.Chart("chartContainer1", {
    data: [{
      type: "column",
      dataPoints: [{
        x: 10,
        y: 10
      }, {
        x: 20,
        y: 15
      }, {
        x: 30,
        y: 25
      }, {
        x: 40,
        y: 30
      }, {
        x: 50,
        y: 28
      }]
    }]
  });

  chart1.render();

  var chart2 = new CanvasJS.Chart("chartContainer2");

  chart2.options.axisY = {
    prefix: "$",
    suffix: "K"
  };
  chart2.options.title = {
    text: "Fruits sold in First & Second Quarter"
  };

  var series1 = { //dataSeries - first quarter
    type: "column",
    name: "First Quarter",
    showInLegend: true
  };

  var series2 = { //dataSeries - second quarter
    type: "column",
    name: "Second Quarter",
    showInLegend: true
  };

  chart2.options.data = [];
  chart2.options.data.push(series1);
  chart2.options.data.push(series2);


  series1.dataPoints = [{
    label: "banana",
    y: 18
  }, {
    label: "orange",
    y: 29
  }, {
    label: "apple",
    y: 40
  }, {
    label: "mango",
    y: 34
  }, {
    label: "grape",
    y: 24
  }];

  series2.dataPoints = [{
    label: "banana",
    y: 23
  }, {
    label: "orange",
    y: 33
  }, {
    label: "apple",
    y: 48
  }, {
    label: "mango",
    y: 37
  }, {
    label: "grape",
    y: 20
  }];

  chart2.render();
};

这里是一个演示程序。首先,您不需要两个window.onload函数。第二个onload函数将覆盖第一个函数。所以只要有一个,并在其中一个中包含两个图表代码

另外,要创建的第一个图表需要id为
chartContainer
的元素,该元素在DOM中不存在。将其替换为
chartContainer1

替换

var chart = new CanvasJS.Chart("chartContainer", {...});

两个图表都使用两个变量,而不是使用一个变量
chart
,这样变量就不会被覆盖。像这样的

window.onload = function(){
  var chart1 = new CanvasJS.Chart("chartContainer1", {
    data: [{
      type: "column",
      dataPoints: [{
        x: 10,
        y: 10
      }, {
        x: 20,
        y: 15
      }, {
        x: 30,
        y: 25
      }, {
        x: 40,
        y: 30
      }, {
        x: 50,
        y: 28
      }]
    }]
  });

  chart1.render();

  var chart2 = new CanvasJS.Chart("chartContainer2");

  chart2.options.axisY = {
    prefix: "$",
    suffix: "K"
  };
  chart2.options.title = {
    text: "Fruits sold in First & Second Quarter"
  };

  var series1 = { //dataSeries - first quarter
    type: "column",
    name: "First Quarter",
    showInLegend: true
  };

  var series2 = { //dataSeries - second quarter
    type: "column",
    name: "Second Quarter",
    showInLegend: true
  };

  chart2.options.data = [];
  chart2.options.data.push(series1);
  chart2.options.data.push(series2);


  series1.dataPoints = [{
    label: "banana",
    y: 18
  }, {
    label: "orange",
    y: 29
  }, {
    label: "apple",
    y: 40
  }, {
    label: "mango",
    y: 34
  }, {
    label: "grape",
    y: 24
  }];

  series2.dataPoints = [{
    label: "banana",
    y: 23
  }, {
    label: "orange",
    y: 33
  }, {
    label: "apple",
    y: 48
  }, {
    label: "mango",
    y: 37
  }, {
    label: "grape",
    y: 20
  }];

  chart2.render();
};

这里是一个演示程序。首先,您不需要两个window.onload函数。第二个onload函数将覆盖第一个函数。所以只要有一个,并在其中一个中包含两个图表代码

另外,要创建的第一个图表需要id为
chartContainer
的元素,该元素在DOM中不存在。将其替换为
chartContainer1

替换

var chart = new CanvasJS.Chart("chartContainer", {...});

两个图表都使用两个变量,而不是使用一个变量
chart
,这样变量就不会被覆盖。像这样的

window.onload = function(){
  var chart1 = new CanvasJS.Chart("chartContainer1", {
    data: [{
      type: "column",
      dataPoints: [{
        x: 10,
        y: 10
      }, {
        x: 20,
        y: 15
      }, {
        x: 30,
        y: 25
      }, {
        x: 40,
        y: 30
      }, {
        x: 50,
        y: 28
      }]
    }]
  });

  chart1.render();

  var chart2 = new CanvasJS.Chart("chartContainer2");

  chart2.options.axisY = {
    prefix: "$",
    suffix: "K"
  };
  chart2.options.title = {
    text: "Fruits sold in First & Second Quarter"
  };

  var series1 = { //dataSeries - first quarter
    type: "column",
    name: "First Quarter",
    showInLegend: true
  };

  var series2 = { //dataSeries - second quarter
    type: "column",
    name: "Second Quarter",
    showInLegend: true
  };

  chart2.options.data = [];
  chart2.options.data.push(series1);
  chart2.options.data.push(series2);


  series1.dataPoints = [{
    label: "banana",
    y: 18
  }, {
    label: "orange",
    y: 29
  }, {
    label: "apple",
    y: 40
  }, {
    label: "mango",
    y: 34
  }, {
    label: "grape",
    y: 24
  }];

  series2.dataPoints = [{
    label: "banana",
    y: 23
  }, {
    label: "orange",
    y: 33
  }, {
    label: "apple",
    y: 48
  }, {
    label: "mango",
    y: 37
  }, {
    label: "grape",
    y: 20
  }];

  chart2.render();
};

这是一个演示,请添加一个更具体的问题陈述。您收到了什么错误消息?请添加更具体的问题说明。您收到了什么错误消息?请添加更具体的问题说明。您收到了什么错误消息?请添加更具体的问题说明。你收到了什么错误信息?非常感谢,最后我知道发生了什么,我想你真的给我指明了方向。非常感谢你,我终于知道发生了什么,我想你真的给我指明了方向。非常感谢你,我终于知道发生了什么,我想你真的给我指明了方向。非常感谢你,我终于知道发生了什么,我想你真的给我指明了方向。非常感谢。