matplotlib2tikz 的隐式错误 thisrow 已经存在

matplotlib2tikz 的隐式错误 thisrow 已经存在

使用 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}

在此处输入图片描述

相关内容