Matplotlib 的 PGF 与 tikzplotlib

Matplotlib 的 PGF 与 tikzplotlib

我想生成一些图表,以便将其集成到使用 pdflatex 编译的 LaTeX 文档中。我还希望图表字体(图例、标题……)遵循 LaTeX 文档的设置。到目前为止,我的搜索给出了 2 种可能性:

  • 使用 matplotlib 中的 PGF 后端保存原始绘图数据,然后使用 PGF 包将其输入到 latex 文档中
  • 或使用tikzplotlibpython 模块将绘图转换为 TikZ 代码,直接在 LaTeX 中编译

这两种方法有什么区别?哪一种更适合复杂的 matplotlib 图(许多子图和大量数据)

答案1

比较

matplotlib 的 PGF 后端

  • 绘图将保存为 PGF 命令,这些命令级别较低,因此不太适合手动编辑。这只有在您需要更改内容时不打算返回 Python 时才真正重要。(您也可以将图直接保存为 PDF反而。)
  • 布局将(或多或少)符合 matplotlib 开发人员的意图。
  • 可以导出任何 matplotlib 图。

tikzplotlib

  • 图将保存为 PGFPlots(TikZ),它是更高级的并且适合手动编辑。
  • 布局细节主要由 PGFPlots 而不是 matplotlib 决定。哪个更好取决于个人偏好和各个程序的功能。
  • 某些类型的 matplotlib 绘图可能不受支持。您可能需要进行实验才能知道哪些有效。

其他考虑因素

根据图的数量和复杂程度,输入 PGF/PGFPlots 代码可能会太慢。您可能需要将 PGF/PGFPlots 代码编译为 PDF 或其他格式,然后输入。TikZ 外部化库可能值得一看。

如果你发现自己经常在 LaTeX 文档和 Python 绘图代码之间切换,你可能需要看看我的PythonTeX包,它允许您在 LaTeX 文档中包含 Python 绘图代码。借助依赖项跟踪功能,可以在数据发生变化时自动更新绘图。

相关内容