gnuplot vs Matplotlib

我已经开始使用gnuplot-py来绘制Tomcat日志的图表,特别是将特定请求与内存分配和垃圾回收相关联。 gnuplot-py和Matplotlib在Pythongraphics上的集体智慧是什么? 有没有更好的graphics库,我还没有听说过?

我的一般考虑是:

  • 当gnuplot有大量的文档时,gnuplot-py不会。 Matplotlib的文档社区有多好?
  • 有没有gnuplot可以做的事情,但gnuplot-py不能?
  • Matplotlib有更好的Python支持吗?
  • 是否有大的节目阻止错误? 烦恼?
  • 目前gnuplot正在绘制10万个点,我计划将其扩展到数百万。 我应该期待问题吗? Matplotlib如何处理这个问题?
  • 易于使用,gnuplot vs Matplotlib的周转时间?
  • 将现有的gnuplot-py代码移植到Matplotlib有多简单?

你将如何处理这个任务?

  • 你可以自己检查matplotlib的文档 。 我觉得它很全面。
  • 我对gnuplot-py很less有经验,所以我不能说是否可以做所有的gnuplot。
  • Matplotlib是专门为Python编写和devise的,所以它非常适合Python成语等。
  • Matplotlib是一个成熟的项目。 美国航空航天局使用它的一些东西。
  • 我已经在Matplotlib中绘制了数千万个点,它看起来仍然很美,并且很快响应。
  • 除了使用Matplotlib的面向对象的方法是pylab界面,这使得绘图就像在MATLAB中一样简单 – 也就是非常简单。
  • 至于从gnuplot-py移植到matplotlib,我不知道。

Matplotlib =易用性,Gnuplot =性能

我知道这个post已经老了,但我正在路过,想把我的两分钱。 这里是我的结论:如上所述,如果你有一个不那么大的数据集,你应该使用Matplotlib。 这更容易,看起来更好。 但是,如果您需要性能,我会build议您使用Gnuplot。 下图显示了绘制和保存随机散点图所需的时间,它是自我解释的。

Gnuplot VS Matplotlib

而且,正如评论中提到的,你可以得到相同质量的地块。 但是你将不得不把更多的汗水用Gnuplot来做。

matplotlib有相当不错的文档,而且看起来相当稳定。 它产生的情节是美丽的 – “出版品质”是肯定的。 由于良好的文档和在线提供的示例代码的数量,这很容易学习和使用,我不认为你会有很多麻烦翻译gnuplot代码到它。 毕竟,matplotlib正在被科学家用来绘制数据和准备报告 – 因此它包含了所有需要的东西。

matplotlib的一个显着优点是可以将它与Python GUI(至less是wxPython和PyQt )集成在一起,并用好的graphics创buildGUI应用程序。

使用GNUplot(用我自己的Python包装)很长一段时间(真的不喜欢80年代的输出),我只是看看matplotlib。 我必须说,我非常喜欢它,输出看起来非常好,文档是高质量和广泛的(尽pipe这也适用于GNUplot)。 我在matplotlib文档中花了很多时间寻找的东西是如何写入图像文件而不是屏幕! 幸运的是,这个网页很好地解释了这个问题: http : //www.dalkescientific.com/writings/diary/archive/2005/04/23/matplotlib_without_gui.html

我玩过两种游戏,我喜欢Matplotlib在Python集成,选项和图/质量方面更好。

Gnuplot可以做什么Gnuplot-Py也可以做。 因为Gnuplot可以通过pipe道(pgnuplot)来驱动。 Gnuplot-Py只是它的一个薄层。 所以你不需要担心。

为什么我更喜欢gnuplot也许是很多输出格式(PDF,PS和LaTex),这在论文中是非常有用的,而默认的输出看起来更科学风格:)

关于性能和绘制很多点:我比较了这个从一个文本文件加载500.000点散点图,并保存到PNG,使用gnuplot *和matplotlib。

 500.000 points scatterplot gnuplot: 5.171 s matplotlib: 230.693 s 

我只跑了一次,结果看起来不一样,但我认为这个想法很清楚:gnuplot在performance上胜出。

*我直接使用gnuplot,因为gnuplotpy演示对我来说不起作用。 Matplotlib在Python集成方面获胜。