将颜色条与名称的颜色条对齐

将颜色条与名称的颜色条对齐

我正在尝试制作一组​​共享groupplots相同colorbary 轴的图。示例:

\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 namegroupplot环境提供了密钥,而环境又将其应用于组中的每个图,因此在这种情况下执行了两次。如果您只提供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}

注意:我本来想发表评论,但我的声誉不足以这样做。

相关内容