尝试在csv文件中绘制图形

时间:2017-07-18 20:26:48

标签: perl csv graph

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文件中获取任何内容。 有人可以帮我这个吗?

1 个答案:

答案 0 :(得分: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;