使用 matplotlib2tikz v0.6.18 从 Python 3.7 到 LaTeX 代码的转换效果很好。唯一的例外是一些忽略的参数,对我来说这些参数似乎被合理地丢弃了(纵横比和刻度标签文本宽度)。我使用的是 pgfplots 的当前版本,即 1.16。
当使用 pdflatex 或 lualatex 进行编译时,它会失败并显示以下令人费解的错误消息 - 令人费解的是没有明确的thisrow
参数:
! Package PGF Math Error:
The function `thisrow' already exists.
简化了代码,并将错误追踪到轴环境的开始或内部的第一个路径命令。这里是有缺陷的 MWE:
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size=2 by 1}]
\nextgroupplot[]
\path [fill=green] (axis cs:.1,.1) --(axis cs:.1,.12)
--(axis cs:.12,.12) --(axis cs:.12,.1) --(axis cs:.1,.1)
--cycle;
\begin{axis}
\path [fill=red] (axis cs:.1,.1) --(axis cs:.1,.12)
--(axis cs:.12,.12) --(axis cs:.12,.1) --(axis cs:.1,.1)
--cycle;
\end{axis}
\begin{axis}
\path [draw=white, fill=white] (axis cs:0,0) --(axis cs:0,1)
--(axis cs:1,1) --(axis cs:1,0) --cycle;
\end{axis}
\end{groupplot}
\end{tikzpicture}
\end{document}
答案1
主要问题是,您应该\nextgroupplot
在组图中使用而不是轴环境。还请注意,您绘制的路径将被剪掉,因为 pgfplots 根据图而不是 Ti 计算边界框钾Z 路径。但是,将路径转换为图很容易。最后,由于您似乎想要 3 个图,因此您可能需要使用group size=3 by 1
。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size=3 by 1}]
\nextgroupplot[]
\addplot [fill=green] coordinates {(.1,.1) (.1,.12)
(.12,.12) (.12,.1) (.1,.1)};
\nextgroupplot[]
\addplot [fill=red] coordinates {(.1,.1) (.1,.12)
(.12,.12) (.12,.1) (.1,.1)};
\nextgroupplot[]
\addplot [draw=white, fill=white] coordinates {(0,0) (0,1)
(1,1) (1,0) };
\end{groupplot}
\end{tikzpicture}
\end{document}