1

2 本の線 (1 本の水平線と 1 本の放物線) を含む図があり、交差点の値を表示し、テキスト "MSY" でラベル付けしたいと考えています。オプションを使用しようとしましたpointLabelsが、正しい方法が見つからなかったようです。誰かヒントを教えてくれませんか?これが問題のデモです。

jqueryコード:

$(document).ready(function() {
    $.jqplot.config.enablePlugins = true;
    var s1 = [[0.0, 0.0], [1.0, 0.036], [2.0, 0.064], [3.0, 0.084], [4.0, 0.096], [5.0, 0.1], [6.0, 0.096], [7.0, 0.084], [8.0, 0.063], [9.0, 0.036], [10.0, 0.0]];

    $.jqplot('chart1', [s1], {
        seriesDefaults: {
            showMarker: false,
            pointLabels: {
                show: false
            }
        },
        axes: {
            xaxis: {
                label: 'X label',
                pad: 0
            },
            yaxis: {
                label: 'Y label',
                labelRenderer: $.jqplot.CanvasAxisLabelRenderer
            }
        },
        legend: {
            show: true,
            location: 'ne',
            placement: 'inside',
            fontSize: '11px'
        },
        canvasOverlay: {
            show: true,
            objects: [
                {
                horizontalLine: {
                    y: 0.1,
                    color: 'rgb(100, 55, 124)',
                    show: true,
                }}
            ]
        },
        pointLabels: {
            show: true,
            labels: [[5, 0.10]],
            hideZeros: true
        }
    })
})​
4

1 に答える 1

2

放物線が一様であると仮定する以外に、直接的な解はありません。放物線の頂点を計算するために、いくつかの仮定を行いました。これは単なる概算です。また、Series ラベルにフィードできる配列を用意しました。

var k = Math.round(s1.length / 2); //Assuming your Parabola to be uniform
    var l = [];
    var i=0;
    while(i<(k-1))
    {
    l.push("");
        i++;
    }
    l.push('MSY');

これで l 配列ができました。これを series オプションに入力して、必要な結果を取得します。

 series: [
            {
            pointLabels: {
                show: true,
                labels: l
            }}],

フィドルに必要な変更を加え、http://jsfiddle.net/JWhmQ/292/を更新しました。小さなプラグインを見つけるか、放物線の先端または頂点を提供する小さなスクリプトを作成し、そのために上記を使用することをお勧めします。それはあなたの問題を解決します。

于 2012-07-06T18:57:17.277 に答える