Makie.jl 这个绘图库的优势?

看到夏季会议一上来就推荐这个库,遂有此问。

我个人是比较喜欢用Plots.jl的,主要是因为它本身只是一个前端。如果我需要速度,就用gr()或者inspectdr();如果需要数学符号好看,就用pgfplotsx();如果要和图像交互,就用plotly()或者plotlyjs()……我只需要写一套程序,然后按需求换后端就可以了。

目前刚刚接触Makie.jl,还没进行具体了解这个库,只是从它的Github和文档主页看到一些,感觉喊挺新奇的。想了解:如何评价Makie.jl?大家是在何种场景下使用它的?它解决了诸位大佬在工作中怎样的痛点?……

欢迎大家分享自己的见解!

一直在用PlotlyBase,这个也挺好用的,而且作者也一直在更新。倒是Makie更新频率不高

Makie这个库发展时间不算久,野心很大,希望以后能取代Plots成为Julia标准绘图库(毕竟这是几乎全部Julia实现的)。它的卖点是对GPU的使用,所以理论上想往三维图像发展的话会有优势。我最早尝试的时候有几点:

  1. 启动加载很慢很慢,基本上是Julia社区里最有代表性的慢。最近有预编译的帮忙加载image的确快了很多,但相应也会有些其他代价。
  2. 所有的图都可以随意拉伸对焦,很方便与数据互动。
  3. 默认的输出,比如2维的线图,是在是太丑了。后来添加了一个辅助库MakieLayout.jl才终于能看齐其他的包。
  4. 原作者Simon展示过一些基于Makie的GUI,希望凸显的特色是实时的输出和动态调整。我没有花时间研究过,但感觉对于以后想做一个GUI的话应该挺不错的。
  5. 目前Makie很多的文档和教程都不成熟,入手难度大于竞争对手。
5 个赞

离我上次回复已经过去一年了,然而的确有些内容需要更新。

  • 目前Makie将原先的MakieLayout.jl整合了进来,组织多张图变得非常容易,并且是我使用过的几个库里面体验最好的。
  • Makie全面升级了文档。虽然仍有很多可以提高的地方,但是比以前好多了。
  • 当前默认的输出好了很多,即使不用很仔细地调参数也能做出不错的图。
  • 终于开始支持LaTeX了,虽然有些地方不完整,但能用了。
  • 交互性,一直以来的卖点,的确不错。
  • 自定义数据的绘图recipe有比较详细的介绍和可以参考的例子了

依旧存在的问题:

  • Time-to-first-plot,太太太太慢了。我不习惯用PackageCompiler加载编译好的image,所以Makie依旧不是主力绘图库。
  • 画三维图的时候,图形界面有时候在转视角的时候会突然卡死,需要关闭窗口重来。
  • 默认错误信息的backtrace太长了,很难在不熟悉的情况下读懂。
  • Recipe依赖于Makie本身,不能像Plots.jl一样只依赖于一个轻量的库。
5 个赞