3

2 行の JQ プロットを作成しようとしています。1 行目は 1 日目からのデータを 1 時間ごとに示し、2 行目は 2 日目のデータを 1 時間ごとに示しています。これらの 2 つの線でグラフを作成するとき、2 番目の線の上に 1 つの線を表示して、1 時間ごとのデータ比較を表示します。しかし、チャート上でこれら 2 つの線が隣り合っていることがわかります。

ここにサンプルがあります

グラフ オプションを調整して、ある線を別の線の上に表示する方法を教えてください。ありがとうございました。

ここに私のコードがあります:

<html>
<head>
    <script src="http://www.jqplot.com/deploy/dist/jquery.min.js"></script>
    <script src="http://www.jqplot.com/deploy/dist/jquery.jqplot.min.js"></script>
    <script src=""></script>
    <link class="include" rel="stylesheet" type="text/css" href="http://www.jqplot.com/deploy/dist/jquery.jqplot.min.css" />
    <script class="include" type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.cursor.min.js"></script>
    <script class="include" type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.dateAxisRenderer.min.js"></script>
    <script class="include" type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.logAxisRenderer.min.js"></script>
    <script class="include" type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.canvasTextRenderer.min.js"></script>
    <script class="include" type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
    <script type="text/javascript">
$(document).ready(function(){
    line1 = [["6/22/2009 10:00",425.32], ["6/22/2009 11:00",424.84], ["6/22/2009 12:00",417.23], ["6/22/2009 13:00",390], 
    ["6/22/2009 14:00",393.69], ["6/22/2009 15:00",392.24], ["6/22/2009 16:00",369.78], ["6/22/2009 17:00",330.16], ["6/22/2009 18:00",308.57], 
    ["6/22/2009 19:00",346.45], ["6/22/2009 20:00",371.28], ["6/22/2009 21:00",324.7]];

        line2 = [["6/23/2009 10:00",325.32], ["6/23/2009 11:00",324.84], ["6/23/2009 12:00",217.23], ["6/23/2009 13:00",190], 
    ["6/23/2009 14:00",593.69], ["6/23/2009 15:00",292.24], ["6/23/2009 16:00",369.78], ["6/23/2009 17:00",330.16], ["6/23/2009 18:00",308.57], 
    ["6/23/2009 19:00",446.45], ["6/23/2009 20:00",241.28], ["6/23/2009 21:00",624.7]];

    var plot1 = $.jqplot('chart1', [line1,line2], { 
        title: 'XYZ, Inc.', 
        series: [{ 
            label: 'XYZ, Inc.', 
            neighborThreshold: -1 
        }], 
        axes: { 
            xaxis: { 
                renderer:$.jqplot.DateAxisRenderer,
                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                tickOptions: {
                  angle: -30
                } 
            }, 
            yaxis: {  
                renderer: $.jqplot.LogAxisRenderer,
                tickOptions:{ prefix: '$' } 
            } 
        }, 
        cursor:{
            show: true, 
            zoom: true
        } 
    });
});
</script>

</head>
<body>
    <div id="chart1" style="height:200px; width:600px;"></div>
</body>
</html>​
4

3 に答える 3

6

私はこの同じ問題に苦労しました。

解決策は、x2axis という名前の 2 番目の x 軸を定義することです。

次に、シリーズ構成で、シリーズの 1 つが 2 番目の x 軸を使用するように指定します。

var plot1 = $.jqplot('chart1', [line1,line2], { 
    title: 'XYZ, Inc.', 
    series: [{ 
        label: 'primary series', 
        neighborThreshold: -1,
        xaxis: 'xaxis'
    }, {
        label: 'comparative series',
        xaxis: 'x2axis'
    }], 
    axes: { 
        xaxis: { 
            renderer:$.jqplot.DateAxisRenderer,
            tickRenderer: $.jqplot.CanvasAxisTickRenderer,
            tickOptions: {
              angle: -30
            } 
        },
        x2axis: {
            renderer:$.jqplot.DateAxisRenderer,
            tickRenderer: $.jqplot.CanvasAxisTickRenderer,
            tickOptions: {
              angle: -30
            } 
        },
        yaxis: {  
            renderer: $.jqplot.LogAxisRenderer,
            tickOptions:{ prefix: '$' } 
        } 
    }, 
    cursor:{
        show: true, 
        zoom: true
    } 
});

これは、ソリューションを示す JS Fiddleです。

データセットの長さが異なる場合、解決すべき追加の問題があります。詳細については、このトピックに関する私のブログ投稿をご覧ください。

乾杯!

于 2013-11-26T20:54:35.413 に答える
2

それは私のために働いた。

例:

var line1=[['2008-06-30 8:00AM',4], ['2008-7-14 8:00AM',6.5], ['2008-7-28 8:00AM',5.7], ['2008-8-11 8:00AM',9], ['2008-8-25 8:00AM',8.2]];
var line2=[['2008-06-30 8:00AM',6], ['2008-7-14 8:00AM',8.5], ['2008-7-28 8:00AM',8.7], ['2008-8-11 8:00AM',12], ['2008-8-25 8:00AM',8.2]];

var plot2 = $.jqplot('chart3', [line1,line2], {
    title:'Customized Date Axis', 
    axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer, 
          tickOptions:{formatString:'%b %#d, %#I %p'},
          min:'June 16, 2008 8:00AM', 
          tickInterval:'2 weeks'
        }
    },
    series:[{lineWidth:4, markerOptions:{style:'square'}}]
});
于 2013-02-25T11:54:04.220 に答える
2

dateAxisRenderer を使用している場合は可能ではないと思います。可能な解決策は、dateAxisRenderer を使用せずに折れ線グラフを使用することです。

元:

line1 = [[10,425.32], [11,424.84], [12,417.23], [13,390], [14,393.69], [15,392.24], [16,369.78], [17,330.16], [18,308.57], [19,346.45], [20,371.28], [21,324.7]];

line2 = [[10,325.32], [11,324.84], [12,217.23], [13,190], [14,593.69], [15,292.24], [16,369.78], [17,330.16], [18,308.57], [19,446.45], [20,241.28], [21,624.7]];

var plot3 = $.jqplot('chart1', [line1, line2 ], { 
  title: 'XYZ, Inc.', 
    series: [{ 
        label: 'XYZ, Inc.', 
        neighborThreshold: -1 
    }], 
    axes: {
        xaxis: {
            min: 1,
            max: 24,
            tickInterval: 2,
            tickOptions:{ suffix: ':00' } 
        },
         yaxis: {  
            renderer: $.jqplot.LogAxisRenderer,
            tickOptions:{ prefix: '$' } 
        } 
    },
    cursor:{
        show: true, 
        zoom: true
    } 
});
于 2013-01-03T03:44:54.693 に答える