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