2

jqPlot を使用して、いくつかの Web ページに多くのグラフを表示しています。これらのグラフを画像ファイルに保存できるようにしたいと考えています。

これを行う最善の方法は何ですか?グラフを画像ファイルに保存できる右クリック メニュー オプションをグラフに設定することはできますか?

私のグラフの1つのコードは次のとおりです。

var plotCogsLineGraph = $.jqplot('FinancialsLineGraph', [[30,31,34,40,45], [34,38,31,42,38]], 
{ 
            axes:
            {
                xaxis:
                {
                      ticks: ['5','4','3','2','1']
                },
                yaxis:
                {
                    label:'%',
                    pad: 1.05,
                    ticks: ['0','15','30','45','60']
                }
            },

            width: 480, height: 270,
            legend:{show:true, location: 's', placement: 'insideGrid', renderer: $.jqplot.EnhancedLegendRenderer},
    seriesDefaults: 
    {
                rendererOptions: {smooth: true}
    },
    series:[ 
                {
                    lineWidth:1, 
                    label:'COGS',
                    markerOptions: { size:1, style:'dimaond' }
                }, 
                {
                    lineWidth:1, 
                    label:'Wages',
                    markerOptions: { size: 1, style:"dimaond" }
                }
                ]
    }
); 

グラフを画像ファイルに保存できるようにするには、上記のコードに何を追加する必要がありますか?

4

3 に答える 3

8

これを試して:

$('#FinancialsLineGraph').jqplotSaveImage()
于 2013-08-01T07:11:28.690 に答える
2

あなたのプロットが 'plot' id の div で描画されているとしましょう。プロットを画像に変換するには、ネイティブjqplotToImageStr({})関数を適用する必要があります。次に、この新しく生成された画像を表示するために、他の div を (たとえば id = 'graphicImage' で) 埋めることができます。

var graphicImage = $('#graphicImage');
if(graphicImage.html() == ""){ //If the image was even generated, don't generate it again
  var divGraph = $('#plot').jqplotToImageStr({});
  var divElem  = $('<img/>').attr('src', divGraph);
  graphicImage.html(divElem);
}

画像をダウンロードするには、次のようにします。

   open(divGraph.toDataURL("image/png"));

私の場合、コンピューターにダウンロードしたイメージが破損しているため、うまく機能しません。保存する方法が見つかったら、教えていただければ幸いです。

とにかく、この回答の最初の部分を完了したら (「#graphicImage」div に jqplot に対応する画像を入力します)、右クリックして保存できます...

于 2013-02-14T07:33:47.157 に答える
1

$('#GraphName').jqplotSaveImage() ただし、目盛りにいくつかのカスタム スタイルを適用した場合、これは画像に保存されないことに注意してください

于 2016-09-28T07:11:55.583 に答える