我正在尝试制作一组共享groupplots
相同colorbar
y 轴的图。示例:
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[%
point meta min=0, point meta max=25,
group style={group size=2 by 1,
yticklabels at=edge left, ylabels at=edge left,
},
colorbar,
colorbar to name=commonbar,
]
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\end{groupplot}
\end{tikzpicture}
\ref{commonbar}
\end{document}
这里,colorbar to name
选项负责colorbar
对所有图使用相同的(pdflatex 会针对“多重定义标签”发出警告 - 我想这是意料之中的,只要colorbar
指定了的范围就没有问题)。colorbar
然后由命令“放置” \ref{commonbar}
。
我怎样才能colorbar
正确地将 与图形对齐?我尝试将命令\ref
放在几个地方(上面的位置给出了迄今为止我看到的最佳结果)。您可能会说我正在寻找yticklabels at=edge left
与颜色条等效的东西。
答案1
关于多重定义标签的警告来自于这样一个事实:您colorbar to name
向groupplot
环境提供了密钥,而环境又将其应用于组中的每个图,因此在这种情况下执行了两次。如果您只提供colormap
给最后一个\nextgroupplot[<options>]
,则消息将消失,并且颜色图将按所需位置放置,而无需使用colorbar to name
和\ref
。如果您确实想使用colormap to name
,Percusse 的答案是一个不错的选择。
\documentclass[border=4mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[%
point meta min=0, point meta max=25,
group style={
group size=2 by 1,
yticklabels at=edge left,
ylabels at=edge left
}
]
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\nextgroupplot[colorbar]
\addplot[scatter, scatter src=y] {x^2};
\end{groupplot}
\end{tikzpicture}
\end{document}
答案2
这很有效,但需要手动调整。Christian 或 Jake 可能会给你一个自动化解决方案。我将其放入commonbar
一个节点,并将其放在最右边的组图旁边。
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[%
point meta min=0, point meta max=25,
group style={group size=2 by 1,
yticklabels at=edge left, ylabels at=edge left,
},
colorbar,
colorbar to name={commonbar},
]
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\end{groupplot}
\node[anchor=west,inner sep=0] at([shift={(5mm,0cm)}]group c2r1.east) {\ref{commonbar}};
\end{tikzpicture}
\end{document}
由于某种原因,颜色条的标签太靠近颜色图。 我不知道为什么会发生这种情况。但我会调查一下。我使用了inner sep=0
,它被 继承colormap
。删除该选项可以解决该问题。
答案3
Percusse 的回答对我帮助很大,但颜色条没有与我的图完美对齐。我做了一点修改,这样就无需使用额外的\node
和静态宽度就可以工作。这是通过将颜色条与 一起放置来完成的colorbar style
。颜色条最终通过 显示\pgfplotscolorbarfromname{commonbar}
。
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[%
point meta min=0, point meta max=25,
group style={group size=2 by 1,
yticklabels at=edge left, ylabels at=edge left,
},
colorbar,
colorbar to name={commonbar},
colorbar style={
at={(group c2r1.north east)},
anchor=north west
}
]
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\nextgroupplot
\addplot[scatter, scatter src=y] {x^2};
\end{groupplot}
\pgfplotscolorbarfromname{commonbar}
\end{tikzpicture}
\end{document}
注意:我本来想发表评论,但我的声誉不足以这样做。