0

json/ajaxリクエストからのデータをプロットするための次のコードがあります

function plotit(data){
        $.jqplot.config.enablePlugins = true;
        $("#jqplot-chart1").empty();
           plot1 = $.jqplot('jqplot-chart1', data,{ 
               axesDefaults: { pad: 1.2},
                title: 'data',
                animate: true,
                animateReplot: true,
                 axes: {
                    xaxis: {
                          label: "---",
                          tickOptions: {formatString: '%d-%m-%Y'}, // ex 02-09-2002,23:09:55 - %d
                          renderer: $.jqplot.DateAxisRenderer
                        },
                        yaxis: {
                            label: "Y "
                        }
                },
                cursor:{ 
                    zoom: true,
                    showTooltip : true,
                    constrainZoomTo : 'x',
                    showVerticalLine : true
                }
          } 
    ); 
    }

これは、json応答データの例です。

[[["2013-03-02 00:00:00","2"],["2013-03-01 00:00:00","72"],["2013-02-28 00:00:00","26"],["2013-02-27 00:00:00","67"],["2013-02-26 00:00:00","48"],["2013-02-25 00:00:00","50"]]]

しかし、私がプロットするとき、基本的に私は2つの問題を抱えています:-最初は、プロットの上部と最大値の間のパディングが巨大であり、プロットの高さを動的に調整したいです(写真の赤い矢印) 2つ目は、右側の最後の値がプロットの境界線に付加されていることです(画像の青矢印)![プロット結果] [1]

誰かが私を助けることができますか?

これは問題を説明する画像です:

http://img7.imageshack.us/img7/963/sanstitrebtt.png

4

1 に答える 1

2

以下を使用してレンダリングした後、dataBounds値を取得できます。

var minY = plot2.axes.yaxis._dataBounds.min;
var maxY = plot2.axes.yaxis._dataBounds.max;

(xaxisを使用してminXとmaxXを同様に取得できます。)

次に、jqplotにこの境界を使用して、次を使用して正確な範囲をプロットするように依頼できます。

plot2.axes.yaxis.min = minY;
plot2.axes.yaxis.max = maxY;

(xaxisについても同様に動作します);

最後に、グラフを再プロットします。plot2.replot();

最終的なグラフには、データ値に応じた境界があります。

PS:plot2.yaxis._numberTicksまたはplot2.yaxis.numberTicksを使用してnumberTicksで作業することもできます(どちらが効果的かわからない

こちらの同様の投稿を参照してください

于 2013-03-15T15:02:07.313 に答える