如何在循环中使用 highcharts 制作多个图表?
How to make multiple charts using highcharts in a loop?
这是我的相关代码:
<script>
titles = <?php echo json_encode($graphTitles)?>;
//Loop through the graphs
for (var graphNO = 0; graphNO < titles.length; graphNO++)
{
//CREATE NEW CONTAINER
var container = document.createElement('div');
document.body.appendChild(container);er);
dates = <?php echo json_encode($recivedDates);?>[titles[graphNO]];
//I EXTRACT A FEW MORE ARRAYS THE SAME METHOD
$(function ()
{
$(container).highcharts({
title: {
text: titles[graphNO]
},
xAxis: {
categories: dates
},
series: [{
type: 'column',
color: 'gold',
name: 'Created Issues',
data: createdIssues.map(Number)
},
//MORE COLUMN'S AND SOME SPLINES. IT ALL WORKS AS EXPECTED
});
});
}
</script>
我不想 post 所有代码,只是让它变得混乱,我希望这段代码做的是:
graphNO 的值为 2,我认为它会循环两次(确实如此),为每个循环创建一个容器(它确实如此),然后为它在容器中执行的每个循环绘制不同的图形它刚刚制作(但它只是绘制了第二张图)。
我不知道出了什么问题,但是任何关于如何解决这个问题的想法,或者任何关于如何在一个循环中制作多个图表的想法都会很有帮助。
此外,这是我制作的第一个网站,所以我已经一天多没有使用 javascript、php 或 html,如果它是真的很明显,不过我在这方面找不到任何东西。
我明白了,在尝试了一天来自网络的复杂内容但无效之后,我最终想到如果我删除该功能会发生什么,而不是:
$(function ()
{
$(container).highcharts({
title: {
我只有:
$(container).highcharts({
title: {
而且一切都很完美。我不知道为什么,可能是因为 jquery 如何处理函数,我不知道,直到一个小时前我才知道我使用的是 jquery。但如果有人想做类似的事情,它就会起作用,它会起作用,请随时告诉我原因。
Swikrit Khanal 的回答确实有效,因为函数不再被覆盖。当您将其全部包含在函数中时,该函数将在构建下一个图形时覆盖它自己,因此您将只剩下最后一个图形。
Bellow 是一种在不删除函数的情况下使用循环构建多个图形的方法,而是唯一地命名它。
for(v=0; v < 5; v++){
var container = "#container"+v;
var func_name = "container"+v;
func_name = function () {
$(container).highcharts({
})
}
func_name()
}
这是我的相关代码:
<script>
titles = <?php echo json_encode($graphTitles)?>;
//Loop through the graphs
for (var graphNO = 0; graphNO < titles.length; graphNO++)
{
//CREATE NEW CONTAINER
var container = document.createElement('div');
document.body.appendChild(container);er);
dates = <?php echo json_encode($recivedDates);?>[titles[graphNO]];
//I EXTRACT A FEW MORE ARRAYS THE SAME METHOD
$(function ()
{
$(container).highcharts({
title: {
text: titles[graphNO]
},
xAxis: {
categories: dates
},
series: [{
type: 'column',
color: 'gold',
name: 'Created Issues',
data: createdIssues.map(Number)
},
//MORE COLUMN'S AND SOME SPLINES. IT ALL WORKS AS EXPECTED
});
});
}
</script>
我不想 post 所有代码,只是让它变得混乱,我希望这段代码做的是:
graphNO 的值为 2,我认为它会循环两次(确实如此),为每个循环创建一个容器(它确实如此),然后为它在容器中执行的每个循环绘制不同的图形它刚刚制作(但它只是绘制了第二张图)。
我不知道出了什么问题,但是任何关于如何解决这个问题的想法,或者任何关于如何在一个循环中制作多个图表的想法都会很有帮助。
此外,这是我制作的第一个网站,所以我已经一天多没有使用 javascript、php 或 html,如果它是真的很明显,不过我在这方面找不到任何东西。
我明白了,在尝试了一天来自网络的复杂内容但无效之后,我最终想到如果我删除该功能会发生什么,而不是:
$(function ()
{
$(container).highcharts({
title: {
我只有:
$(container).highcharts({
title: {
而且一切都很完美。我不知道为什么,可能是因为 jquery 如何处理函数,我不知道,直到一个小时前我才知道我使用的是 jquery。但如果有人想做类似的事情,它就会起作用,它会起作用,请随时告诉我原因。
Swikrit Khanal 的回答确实有效,因为函数不再被覆盖。当您将其全部包含在函数中时,该函数将在构建下一个图形时覆盖它自己,因此您将只剩下最后一个图形。
Bellow 是一种在不删除函数的情况下使用循环构建多个图形的方法,而是唯一地命名它。
for(v=0; v < 5; v++){
var container = "#container"+v;
var func_name = "container"+v;
func_name = function () {
$(container).highcharts({
})
}
func_name()
}