Pgfplot 自动化工具

Pgfplot 自动化工具

是否有任何好的图形软件可以用来绘制图表/图形并将它们导出为 pgfplot 代码?

例如,我想创建一个直方图,因此我将直方图图标从菜单拖到“场景”并告诉程序从哪个文件加载数据..等等。

答案1

Matplotlib

如果您使用,matplotlib则至少有两个选项可用于生成可包含在 LaTeX 文件中的代码:

  • 后端pgf:最新版本matplotlib有一个pgf后端,因此你可以简单地执行

    plt.savefig('filename.pgf')
    

    生成一个包含pgf代码的文件。

  • matplotlib2tikz:由 Nico Schlömer 编写的脚本,可生成pgfplots可包含\input在 LaTeX 文件中的 TikZ/ 代码。另请参阅下文。

Matlab 导出

matlab2tikz(也可在MathWorks 文件交换),同样由 Nico Schlömer 撰写,其作用是matplotlib2tikz

可以指定绘图的宽度和高度pgfplots,开发人员matlab2tikz建议将它们定义为宏,以便可以在主 LaTeX 文件中更改它们。

这使得人们可以快速创建具有pgfplots一致大小的直方图。

例子

x = randn(10000,1);
hist(x)
matlab2tikz('testfig.tex')

这将testfig.tex在当前文件夹中生成一个包含tikzpicture环境的文件axis

要指定宽度和高度,例如

matlab2tikz('testfig.tex','width','\figw','height','\figh')

并有如下 LaTeX 代码

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\usepackage{kantlipsum} % for dummy text
\newlength\figw
\newlength\figh
\setlength\figw{7cm}
\setlength\figh{5cm}

\begin{document}
\kant[1]
\begin{figure}[hb]
  \centering
  \input{testfig}
  \caption{Quite normal}
\end{figure}
\end{document}

带有直方图的渲染 LaTeX 代码的屏幕截图

答案2

我用八度.它具有print命令带有-dtikz将图导出为 PGF/TikZ 代码的选项。

更准确地说,因为 Octave 包含两个图形工具包:

  • 当 Gnuplot 工具包处于活动状态时,这会保存 TikZ 代码。
  • 当 FLTK 处于活动状态时,这会保存较低级别的 PGF 代码。

此外,它还需要一些配置,因为导出的代码不会立即工作。pgfpicture必须将环境更改为tikzpicture,并且 TikZ 代码调用 gnuplot,这需要从 Octave 提供的 texmf 树中包含一个包,并将 --enable-write18 选项传递给 (pdf)latex。

相关内容