![自动标记组图(A)、(B)、(C),](https://linux22.com/image/283132/%E8%87%AA%E5%8A%A8%E6%A0%87%E8%AE%B0%E7%BB%84%E5%9B%BE%EF%BC%88A%EF%BC%89%E3%80%81%EF%BC%88B%EF%BC%89%E3%80%81%EF%BC%88C%EF%BC%89%EF%BC%8C.png)
有没有办法自动标记一组groupplots
来自pgfplots
包(A),(B),(C),......?
\documentclass[margin=2pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}[shorten >=4pt,shorten <=4pt]
\begin{groupplot}[group style={group size=2 by 2,vertical sep=15mm},
height=3.5cm,width=3.5cm,/tikz/font=\small]
\nextgroupplot[title=(A)]
\addplot coordinates {(0,1) (1,0)};
\nextgroupplot[title=(B)]
\addplot coordinates {(0,1) (1,0)};
\nextgroupplot[title=(C)]
\addplot coordinates {(0,1) (1,0)};
\nextgroupplot[title=(D)]
\addplot coordinates {(0,1) (1,0)};
\end{groupplot}
\end{tikzpicture}
\end{document}
答案1
该groupplots
库将当前图的值保存在计数中。因此,您可以使用包和以下样式\pgfplots@group@current@plot
自动创建标题:alphalph
\makeatletter
\pgfplotsset{
auto title/.style={
title=(\AlphAlph{\pgfplots@group@current@plot})
}
}
\makeatother
然后您只需添加auto title
到axis
选项(或添加到\nextgroupplot
选项),您就会得到所需的结果:
\documentclass[margin=2pt]{standalone}
\usepackage{alphalph}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.8}
\makeatletter
\pgfplotsset{
auto title/.style={
title=(\AlphAlph{\pgfplots@group@current@plot})
}
}
\makeatother
\begin{document}
\begin{tikzpicture}[shorten >=4pt,shorten <=4pt]
\begin{groupplot}[group style={group size=2 by 2,vertical sep=15mm},
height=3.5cm,width=3.5cm,/tikz/font=\small, auto title]
\nextgroupplot
\addplot coordinates {(0,1) (1,0)};
\nextgroupplot
\addplot coordinates {(0,1) (1,0)};
\nextgroupplot
\addplot coordinates {(0,1) (1,0)};
\nextgroupplot
\addplot coordinates {(0,1) (1,0)};
\end{groupplot}
\end{tikzpicture}
\end{document}
答案2
虽然这给出了所需的结果,但还有一些问题我还没有完全解决。正如我希望它能工作一样,你会将它用于\startaddplot
你的第一个绘图和\nextaddplot
后续绘图。
但实际情况是,我使用的计数器不知何故步步落后。因此,我不得不采取粗暴的修复措施,将计数器初始化为 -1,而不是预期值 0,并且还要求您\noaddplot
在完成后发出一个,以追溯步进计数器以绘制最终图。
我确信像 egreg 这样的人会告诉我为什么我的计数器没有跟上。
\documentclass[margin=2pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.8}
\newcounter{plotno}
\newcommand\startaddplot{%
\global\setcounter{plotno}{-1}%
\nextaddplot%
}
\newcommand\nextaddplot{
\global\stepcounter{plotno}%
\nextgroupplot[title=(\Alph{plotno})]%
\addplot%
}
\def\noaddplot{\global\stepcounter{plotno}}
\begin{document}
\begin{tikzpicture}[shorten >=4pt,shorten <=4pt]
\begin{groupplot}[group style={group size=2 by 2,vertical sep=15mm},
height=3.5cm,width=3.5cm,/tikz/font=\small]
\startaddplot coordinates {(0,1) (1,0)};
\nextaddplot coordinates {(0,1) (1,0)};
\nextaddplot coordinates {(0,1) (1,0)};
\nextaddplot coordinates {(0,1) (1,0)};
\noaddplot
\end{groupplot}
\end{tikzpicture}
\end{document}