问题 用户的matplotlib?


我经常在R中制作数字(探索性数据分析类型)。我也用Python编程,并想知道matplotlib中是否有值得学习的功能或概念。例如,我对R非常满意 - 但是它的image()函数会生成带有像素化输出的大文件,而Matlab的等效数字(我也经常在Matlab中编程)似乎可以在文件大小上进行管理并且“平滑” - matplotlib还提供这样的减少......?但更一般地说,我想知道matplotlib可能带来的其他优势。我并不是说这是一个拖钓问题。谢谢。


8404
2017-11-02 14:01


起源

看看这个类似的问题: stackoverflow.com/questions/1177019/... - dalloliogm
我意识到这是一个老问题,但对于新访问者:只是使用 GGPLOT2。它有一个陡峭的学习曲线,但是 伟大的文档,默认情况下产生比matplotlib更好的图。 - naught101


答案:


这是一个难以回答的问题。

我最近将一些图形工作负载从R切换到了matplotlib。在我的拙见中,我发现matplotlib的图形更漂亮(更好的默认颜色,它们看起来更清晰,更现代)。我也认为matplotlib使PNG更好。

我的真正动机是,我想在Python(和numpy)中使用我的基础数据,而不是R.我认为这是一个很大的问题,你要用哪种语言加载,解析和操作你的数据?

另一方面,R的一个好处是绘图默认只是工作(所有东西都有一个功能)。我发现自己经常挖掘matplotlib文档(它们很厚),寻找一些不起眼的方法来调整边框或增加线条粗细。 R的绘图程序在它们背后有一些成熟度。


11
2017-11-02 16:14



感谢您的想法...我也在Matlab中进行绘图,所以我认为它可能是一个简单的过渡,但我可以创建我能想象的大多数图形R(尤其是网格图形)所以我想我会推迟matplotlib - 我忘了在每个包中学习定制的细节,这将是一个不受欢迎的时间沉没... - hatmatrix


我认为最大的优势是matplotlib基于Python,你说你已经知道了。所以,这是一种较少学习的语言。只需花时间掌握Python,您既可以直接获得手头的绘图任务,也可以间接获得其他Python需求。

此外,恕我直言Python是比R更全面的语言,有更多的库可以帮助完成各种任务。您必须访问绘图数据,数据有多种形式。无论以何种形式出现,我都确信Python有一个高效的库。

如何将这些图表嵌入到更完整的程序中,比如简单的GUI? matplotlib可以轻松地与Python的GUI库(如PyQT)绑定,你可以制作只有你想象力限制的东西。


3
2017-11-02 16:19



感谢您的想法 - 尽管Python比R更丰富,我在许多方面更熟悉R:它的内置列表也可以是有序字典,快速创建用于本地计算的临时环境(命名空间),强大的匿名函数。 GUI创建是Python的'+' - 我有时会使用Matlab生成的图+ PIL,但我也在R中使用简单的GUI进行交互式分析。 - hatmatrix
您可以尝试从Python调用R.您可以使用RPy,但我通常做的是将R代码写入文件,然后在批处理模式下将R作为进程运行,将结果保存到磁盘,然后再从Python中提取。效果很好。 - telliott99