如何使用 Perl 创建图表?
我正在运行创建文本报告的预定作业。我想将此移至下一步(用于管理),并创建一些与之相关的图表。这可能/可行吗?如果我能以某种方式使用 Office 做到这一点,那就太好了。
更新:我将按此顺序调查的解决方案
- Spreadsheet::WriteExcel(这似乎与我上次调查时有所不同......等等,这是模块作者建议的。很酷。)
- GD Graph - 现在可用于 ActivePerl(不是我上次看的)
- SVG
- 打开图表看起来很有趣。
- 图表总监
GD 和 GD::Graph 可能是您最好的选择,您可以使用它们来创建图像,然后可以将其嵌入到您需要的任何内容中。
上面提到的所有方法都非常好,但我个人喜欢SVG::TT::Graph。我真的很喜欢 SVG 赋予您绘制非常漂亮的图形的能力。
您还可以查看Google Charts CPAN 模块
use Google::Chart;
my $chart = Google::Chart->new(
type => "Bar",
data => [ 1, 2, 3, 4, 5 ]
);
print $chart->as_uri, "\n"; # or simply print $chart, "\n"
$chart->render_to_file( filename => 'filename.png' );
在工作中,我们使用了出色的Chartdirector。
它不是免费的,但非常便宜(可能 50 美元左右)。这笔费用非常值得,因为 API 和文档都非常出色(比 GD 好得多!),因此很容易节省了我的时间。
还有一个免费版本,其中包括在每个图表上宣传产品的黄色小横幅 - 老实说,如果这是供个人使用的,你可以这样做,因为它真的不是很侵入。
Chartdirector 可用于多种平台(Win、Linux、Solaris、BSD、OSX),并且还具有适用于多种语言的 API(Perl、ASP、.NET、Java、PHP、Python、Ruby、C++)。
正如您在他们的示例页面中看到的那样,输出很容易看到。
很抱歉吹了我自己的小号,但你可能有兴趣看看我为关于使用 Perl 进行绘图的简短演示所做的一些幻灯片。
它在这里提到了一些建议,但也为您提供了一些代码片段,您可以使用它们来帮助您充分利用您正在做的事情。
Spreadsheet::WriteExcel::Chart
你可能需要像草莓或香草 Perl 这样的东西来编译它。或者 PPM 可能具有该模块。
教程链接: http ://search.cpan.org/dist/Spreadsheet-WriteExcel/charts/charts.pod
根据图形的复杂性,简单地为Gnuplot或GraphViz/Dotty生成一个命令文件,这取决于你所指的图形类型——可能会奏效吗?
还没有尝试过,但是Chart::Clicker看起来很漂亮。
我认为它使用 Cairo 图形库(GD 的替代品),但实际上是建立在Graphics::Primitive之上的,这是一个“有趣的”图形不可知包。
有问题的作者(GPHAT)似乎正在整合一些用于生成报告的集成工具...... http://www.onemogin.com/blog/582-pixels-and-painting-my-recent-cpan-releases
附带说明... 已使用 ChartDirector 和 OFC,两者都很好(尤其是基于 Web 的情况下)。
Perl 模块Spreadsheet::WriteExcel允许您创建包含图表的 Excel 工作簿。
您首先必须在 Excel 中创建所需的图表类型,然后使用与 Spreadsheet::WriteExcel 一起安装的名为chartex的实用程序将其提取出来。
然后可以将图表模板添加到新工作簿并引用新数据。
然而,该机制有点不灵活,有时很难获得您想要的确切结果。
这在很大程度上取决于什么样的图表(它们的外观)和数据源。通过使用YUI 图表并向它们提供原始源数据的一些 JSON 样式版本,我取得了一些不错的结果。例如,滚动实时图表以获得精确值非常容易。开发人员页面上有很多示例。
It won't work with Office, but I really like Chart::OFC which will create Open Flash Charts. Very slick looking and easy to use.
如果您准备在 MS Office 中执行此操作,您可以使用 Win32::OLE 模块通过OLE控制 Excel 。请注意,这往往运行缓慢,并且很难找到 Excel 的 API 文档。从好的方面来说,它允许你做几乎所有你可以手动做的事情。
PGplot 可以制作很棒的图表。这里有一些例子。它适用于 Perl 5.8.8,但在 5.10.0 中被破坏
当然是元编程!输出创建图形的 R 脚本。
Spreadsheet::WriteExcel让您只需将数据输入 Excel,然后为图表编写 Excel 方程。