绘图包比较

绘图包比较

我想知道常见绘图包/环境之间有哪些区别和关系:

  • picture环境
  • PGF/TikZ
  • 技巧
  • 还有一些也很常见但我还不知道的

选择何时选择哪一个,请考虑:

  1. 他们的目的不同还是相同?
  2. 哪一个更全面,哪一个更容易学习,哪一个之间取得了最佳的平衡?
  3. 是其他的延伸吗?

答案1

对于强大的图形我建议渐近线。它具有 C++ 类型的面向对象语法,并且学习起来并不难(我仍然无法弄清楚 TikZ 的任何技巧 ;-) 我会说它的一些主要优点是(但请查看网页上的图库):

  • 完整的数学和线性代数引擎
  • 完整 3D,包括 PDF 中的活动 3D 图片
  • 使用 LaTeX 设置所有文本和数学
  • 它可以在 Latex 中内联,但通常最好将其用于独立图形。

它也非常适合处理大型数据集及其操作。我在博士论文中对所有图表都使用了一个图表模板,以获得相同的大小、线条粗细、标记等。下图也相当容易制作,其中数据是从离散元模拟导入并在 Asymptote 中进行操作的 填充高度

答案2

我使用 pstricks 已有多年,现在正在使用 TiKZ。我想说它们在功能方面可能非常相似,但 TiKZ 设计得更好,并且具有更具凝聚力的结构。例如,在 pstricks 中绘图需要使用 PostScript:

 \psplot{-2}{3.25}{x dup mul 2 sub x mul 4 add sqrt neg}

但在 TiKZ 中,您可以使用更标准的符号:

 \draw[domain=-2:3.25] plot (\x,{-sqrt(\x*(\x^2-2)+4)});

TiKZ 中所有函数的参数传递方法都相同。如果你习惯使用 pstricks,可能没有太多理由进行更改(除非像我一样,你只是想这样做),但如果你刚开始使用,不知道该使用哪个,我会选择 TiKZ。

答案3

如果您使用pgfplots,则可以使用 进行编译pdflatex。评估函数需要相当长的时间,因此最好让 gnuplot 为您进行计算,并pdflatex -shell-escape按照手册中的说明使用 调用 gnuplot。Gnuplot 还添加了更多函数供使用,例如反双曲函数。

如果使用pst-plotpst-3dplot,则必须使用latex++进行编译,或使用。但您可以使用和内部访问更多函数。除了逆波兰表示法之外,您还可以使用代数符号dvipsps2pdfauto-pst-pdfpdflatex -shell-escapepst-mathpst-func

您可能还想看看metapostasymptote,它们带有自己的数学引擎,默认情况下会生成 EPS 图形以包含在您的文档中。不过这里的学习难度更大。

因为metapost您可能必须在使用内置函数之前手动定义某些常用函数,而asymptote其中 3D 功能最为强大。

答案4

我只亲身体验过 PSTricks 和 PGF/TikZ。PS Tricks 更适合绘制函数——尤其是考虑到它的各种扩展(例如 3d plots 扩展)。PSTricks 的主要缺点是 (i) 您不能使用 PDF LaTeX 和 (ii) 数学函数输入使用逆波兰表示法 (RPN),这不是很直观。

TikZ 可以与 PDFLaTeX 配合使用,这对我来说是一大优势。TikZ 中的绘图是围绕节点构建的,长期以来,我发现这非常不直观。不过,一旦你习惯了这种惯例,它们就可以帮助你轻松完成许多简单的任务(例如用箭头连接两个对象,或标记该箭头)。使用 TikZ(通过 PGFPlots)绘图仍然可行,现在这是我常用的解决方案。

kTikZ/qTikZ该应用程序使您能够以近乎实时的方式编辑 PGF/TikZ 图形,这使得学习语言的过程变得轻松得多。

PSTricks 和 TikZ 都将字体与文档的其余部分相匹配(尤其重要的是它们会正确设置字体大小)。它们还可以通过将图形代码嵌入到 LaTeX 文件中来调用——我喜欢这一点,因为它为我提供了一个非常独立的文档。

在我看来,PSTricks 手册更适合查找特定问题的解决方案。TikZ 手册以教程为结构,非常适合学习语言,但如果您想快速学习如何做非常具体的事情,则帮助不大。PGFplots 有一个单独的手册,其风格更像 PSTricks 手册。无论如何,所有手册都非常有用。

另一个选项是 GNUPlot,它也可以通过 gnuplottex 包与内联代码一起工作。不过,将所有内容传递到外部应用程序然后再将其带回 LaTeX 对我来说似乎有点笨拙,所以我放弃了这个解决方案。

相关内容