10

如何使用 Perl 创建图表?

我正在运行创建文本报告的预定作业。我想将此移至下一步(用于管理),并创建一些与之相关的图表。这可能/可行吗?如果我能以某种方式使用 Office 做到这一点,那就太好了。

更新:我将按此顺序调查的解决方案

  • Spreadsheet::WriteExcel(这似乎与我上次调查时有所不同......等等,这是模块作者建议的。很酷。)
  • GD Graph - 现在可用于 ActivePerl(不是我上次看的)
  • SVG
  • 打开图表看起来很有趣。
  • 图表总监
4

15 回答 15

7

GD 和 GD::Graph 可能是您最好的选择,您可以使用它们来创建图像,然后可以将其嵌入到您需要的任何内容中。

于 2008-09-15T16:44:35.747 回答
7

上面提到的所有方法都非常好,但我个人喜欢SVG::TT::Graph。我真的很喜欢 SVG 赋予您绘制非常漂亮的图形的能力。

于 2008-09-15T16:56:22.520 回答
6

您还可以查看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' );
于 2008-09-15T19:55:14.040 回答
5

在工作中,我们使用了出色的Chartdirector

它不是免费的,但非常便宜(可能 50 美元左右)。这笔费用非常值得,因为 API 和文档都非常出色(比 GD 好得多!),因此很容易节省了我的时间。

还有一个免费版本,其中包括在每个图表上宣传产品的黄色小横幅 - 老实说,如果这是供个人使用的,你可以这样做,因为它真的不是很侵入。

Chartdirector 可用于多种平台(Win、Linux、Solaris、BSD、OSX),并且还具有适用于多种语言的 API(Perl、ASP、.NET、Java、PHP、Python、Ruby、C++)。

正如您在他们的示例页面中看到的那样,输出很容易看到。

于 2008-09-15T21:05:48.567 回答
4

很抱歉吹了我自己的小号,但你可能有兴趣看看我为关于使用 Perl 进行绘图的简短演示所做的一些幻灯片。

它在这里提到了一些建议,但也为您提供了一些代码片段,您可以使用它们来帮助您充分利用您正在做的事情。

于 2008-09-19T19:21:45.030 回答
3
Spreadsheet::WriteExcel::Chart

你可能需要像草莓或香草 Perl 这样的东西来编译它。或者 PPM 可能具有该模块。

教程链接: http ://search.cpan.org/dist/Spreadsheet-WriteExcel/charts/charts.pod

于 2008-09-15T16:43:39.057 回答
3

根据图形的复杂性,简单地为GnuplotGraphViz/Dotty生成一个命令文件,这取决于你所指的图形类型——可能会奏效吗?

于 2008-09-15T16:46:44.213 回答
3

还没有尝试过,但是Chart::Clicker看起来很漂亮。

我认为它使用 Cairo 图形库(GD 的替代品),但实际上是建立在Graphics::Primitive之上的,这是一个“有趣的”图形不可知包。

有问题的作者(GPHAT)似乎正在整合一些用于生成报告的集成工具...... http://www.onemogin.com/blog/582-pixels-and-painting-my-recent-cpan-releases

附带说明... 已使用 ChartDirector 和 OFC,两者都很好(尤其是基于 Web 的情况下)。

于 2008-10-08T09:10:51.020 回答
3

Perl 模块Spreadsheet::WriteExcel允许您创建包含图表的 Excel 工作簿。

您首先必须在 Excel 中创建所需的图表类型,然后使用与 Spreadsheet::WriteExcel 一起安装的名为chartex的实用程序将其提取出来。

然后可以将图表模板添加到新工作簿并引用新数据。

文档在这里,发行版的图表目录中有几个示例

然而,该机制有点不灵活,有时很难获得您想要的确切结果。

于 2008-09-15T22:06:50.620 回答
2

这在很大程度上取决于什么样的图表(它们的外观)和数据源。通过使用YUI 图表并向它们提供原始源数据的一些 JSON 样式版本,我取得了一些不错的结果。例如,滚动实时图表以获得精确值非常容易。开发人员页面上有很多示例。

于 2008-09-15T16:47:33.913 回答
2

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.

于 2008-09-16T17:53:51.827 回答
1

如果您准备在 MS Office 中执行此操作,您可以使用 Win32::OLE 模块通过OLE控制 Excel 。请注意,这往往运行缓慢,并且很难找到 Excel 的 API 文档。从好的方面来说,它允许你做几乎所有你可以手动做的事情。

于 2008-09-15T17:03:00.680 回答
1

PGplot 可以制作很棒的图表。这里有一些例子。它适用于 Perl 5.8.8,但在 5.10.0 中被破坏

于 2008-10-17T16:51:00.700 回答
1

当然是元编程!输出创建图形的 R 脚本。

于 2008-10-17T17:02:20.383 回答
0

Spreadsheet::WriteExcel让您只需将数据输入 Excel,然后为图表编写 Excel 方程。

于 2008-09-17T15:32:28.600 回答