2

次のコードを使用して、一連の棒グラフを に表示していますjqPlot。ただし、次の 2 つの問題があります。

  1. xaxis の範囲値の両側にパディングはありません。パッド属性は効果がないようです。

  2. 棒の数が多いと、棒が重なります。barPadding 属性は効果がないようです。

私はこのリンクHave problems with jqPlot bar chart を見ました。答えは、を使用する必要があることを示唆していましたCategoryAxisRenderer。しかし、時系列データを使用しているため、DateAxisRenderer.

助けてください。

function plotBarGraph(data,myticks,series)
{
    $("#placeholder").empty();
    $.jqplot('placeholder',data,
            {
                //stackSeries:true,
                    seriesDefaults:{ 
                        renderer:$.jqplot.BarRenderer,
                        barMargin:1,
                        barPadding:0.5
                    },
                   axes:
                        {
                        xaxis:
                            {
                            ticks:myticks,
                            tickInterval:10,
                            renderer:$.jqplot.DateAxisRenderer,
                            pad:2.5,
                            tickOptions:
                                {
                                formatString:'%d-%m-%y'
                                }
                            }
                        },
                        legend:
                            {
                            show:true,
                            labels:series
                            }     
            });
}
4

3 に答える 3

1

この場合、リンクに記載されているアプローチを使用したくない場合は、日付軸の最小値/最大値を使用することをお勧めします。

作成時に目盛りを設定し、プロットが描画された後に不要なものを非表示にすることを選択した、パディングに関する同様の種類の問題へのアプローチも役立つと思うかもしれません。

これ以上の支援を行う前に、問題を示すサンプルを提供してください。

于 2012-06-13T09:24:14.070 に答える
0

あなたの2番目の問題について、私は同様の問題に遭遇しました。チャートに含まれるバーの数に応じて、チャートのサイズを拡大する選択ステートメントを設定しました。次に、親divをスクロール可能(「dataHolder」と呼ばれる)にしたところ、問題は解決しました。

        // set div properties depending on how many sets of data are in the 
        //array so the view is sized properly
        $("#chartDiv").html("").css("width", "750px"); // chartDiv's default settings
        $("#tabs-6").removeClass("dataHolder").css("width", "900px"); // parent Div's default settings
        if (dataArray.length > 10) {
            $("#chartDiv").css("width", "1600px");
            $("#tabs-6").addClass("dataHolder").css("width", "900px");
        } else if (dataArray.length > 6) {
            $("#chartDiv").css("width", "1200px");
            $("#tabs-6").addClass("dataHolder").css("width", "900px");
        }
于 2012-08-21T21:02:15.717 に答える