2017-07-18 14 views
-3
use GD::Graph; 
use GD::Graph::bars; 
use GD::Graph::Data; 




print "Content-disposition:attachment;filename=UsageReportChart.csv\n\n"; 
my $data = GD::Graph::Data->new([ 
    ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"], 
    [ 1, 2, 5, 6, 3, 1.5, 1,  3,  4], 
]) or die GD::Graph::Data->error; 

my $graph = GD::Graph::bars->new(); 

$graph->set(
    x_label   => 'X Label', 
    y_label   => 'Y label', 
    title   => 'A Simple Bar Chart', 

    ) or die $graph->error; 
$graph->plot($data) or die $graph->error; 

このコードを使用してグラフをCSVファイルにプロットしようとしましたが、ダウンロードしたCSVファイルに何も表示されませんでした。 誰かがこれを手伝ってくれますか?グラフをCSVファイルにプロットしようとしています

+3

イメージをCSVファイルに含めても意味がありません。 CSV =コンマ区切りの値。それは単純なテキストです。 –

+0

csvから読み込み、グラフを別のcsvファイルにプロットする。どうやってやるの? –

+0

これ以外の方法でpngファイルにグラフをプロットする –

答えて

0

コメントに他の人が指摘しているように、グラフ(画像)をCSVファイルに印刷するのはひどい考えです。

しかし、グラフを作成するためのコードはかなり近いようです。最後の画像を出力するカバーを詳しく調べる必要があります。the bits of the documentation

あなたはplot()メソッドを呼び出しますが、それ以降はさらに行う必要があります。 plot()メソッドはGD::Imageオブジェクトを返し、そのオブジェクト(gif()png()など)の別のメソッドを呼び出してイメージを取得する必要があります。そのデータを使って何かをする必要があります(たぶんどこかに印刷してください)。

このコードはグラフをSTDOUTに出力します。 CGIプログラムでは、グラフイメージがブラウザに返されます。 Content-typeヘッダーは、ブラウザにそのイメージを表示するのに十分な情報を与えます。

my $img = $graph->plot($data); 

# This assumes you haven't already printed a header 
# so remove the incorrect one from above in your code 
print "Content-type: image/png\n\n"; 

print $img->png; 
関連する問題