javascript - Jqplot,分割动态图

标签 javascript jquery jqplot

我有一个包含 12 个值的图表,我想将其分成 3 个图表,每个图表有 4 个值。所以我可以有4张图。数组列表是动态的。

$(document).ready(function(){
        var s1 = [2, 6, 7, 10,2, 6, 7, 10,2, 6, 7, 10];
        var s2 = [7, 5, 3, 2,7, 5, 3, 2,7, 5, 3, 2];
        var s3 = [14, 9, 3, 8,14, 9, 3, 8,14, 9, 3, 8];
  	    var s4 = [15, 8, 2, 10,15, 8, 2, 10,15, 8, 2, 10,];

        plot3 = $.jqplot('chart3', [s1, s2, s3, s4], {
            stackSeries: true,
            captureRightClick: true,
            seriesDefaults:{
                renderer:$.jqplot.BarRenderer,
                rendererOptions: {
                    highlightMouseDown: true   
                },
                pointLabels: {show: true}
            },
            legend: {
                show: true,
                location: 'e',
                placement: 'outside'
            }      
        });
     
        $('#chart3').bind('jqplotDataRightClick', 
            function (ev, seriesIndex, pointIndex, data) {
                $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
            }
        ); 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/jquery.jqplot.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.pointLabels.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.barRenderer.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.dateAxisRenderer.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.categoryAxisRenderer.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.enhancedPieLegendRenderer.min.js"></script>

    <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/jquery.jqplot.min.css" />

<div  id="chart3"></div>

问题是我该如何做到这一点?我有一个看起来像这样的数组:

 array(0 => array(0 => array(0 => 2,1 => 6,2 => 7,3 => 10)),//this will be the first diagram
       1 => array(0 => array(0 => 7,1 => 5,2 => 3,3 => 2)),// this the second       
       2 => array(0 => array(0 => 14,1 => 9,2 => 3,3 => 14)),//this the third
       3 => array(0 => array(0 => 15,1 => 8,2 => 2,3 => 10))//this the fourth
       );

该列表是动态的。有人可以帮我吗?

最佳答案

您需要迭代数组并根据每个子数组数据创建一个图表,如下所示:-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/jquery.jqplot.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.pointLabels.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.barRenderer.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.dateAxisRenderer.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.categoryAxisRenderer.min.js"></script>

<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.enhancedPieLegendRenderer.min.js"></script>

<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/jquery.jqplot.min.css" />

<?php
$array = array(
            0 => array(
                    0 => array(
                        2, 6, 7, 10,2, 6, 7, 10,2, 6, 7, 10
                )
            ),
            1 => array(
                    0 => array(
                        7, 5, 3, 2,7, 5, 3, 2,7, 5, 3, 22
                )
            ),
            2 => array(
                    0 => array(
                        14, 9, 3, 8,14, 9, 3, 8,14, 9, 3, 8
                )
            ),3 => array(
                    0 => array(
                        15, 8, 2, 10,15, 8, 2, 10,15, 8, 2, 10,
                    )
            ),4 => array(
                    0 => array(
                        12, 18, 2, 0,1, 8, 2, 7,6, 8, 2, 21,
                    )
            )
       );


foreach($array as $key=> $arr){?>
<div  id="chart<?php echo $key;?>"></div>
<script type="text/javascript">

$(document).ready(function(){

        plot3 = $.jqplot('chart<?php echo $key;?>', <?php echo json_encode($arr); ?>, {
            stackSeries: true,
            captureRightClick: true,
            seriesDefaults:{
                renderer:$.jqplot.BarRenderer,
                rendererOptions: {
                    highlightMouseDown: true   
                },
                pointLabels: {show: true}
            },
            legend: {
                show: true,
                location: 'e',
                placement: 'outside'
            }      
        });

        $('#chart<?php echo $key;?>').bind('jqplotDataRightClick', 
            function (ev, seriesIndex, pointIndex, data) {
                $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
            }
        ); 
    });

</script>

<?php } ?>

关于javascript - Jqplot,分割动态图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50115326/

相关文章:

javascript - 何时使用 jQuery-ui 插件 vs Backbone View?

javascript - 通过单击动态插入的链接来调用函数

javascript - 在 Node.js 中,从委托(delegate)分配的事件中检查父级的子级名称或选择器

hover - jqplot 格式工具提示值

javascript - jqPlot - 巴特图表不生成

jquery - 使用 jqPlot 绘制 JSON 数据

javascript - 如何为表中的删除行包含不同的警报?

javascript - Sequelize.js如何按多列划分的结果进行排序?

javascript - 映射到另一个并比较节点

jquery - 使用 jQuery 选择和更改多个 CSS 类