pgfplots:改变条形图的顺序

pgfplots:改变条形图的顺序

当一个 pgfplots 轴上有多个条形图时(如以下示例所示),则顶部代码最终成为底部情节的条形图。我确实觉得这很令人困惑——尤其是因为我必须在最后的列表中制作图例,并且必须在那里反转顺序。

有没有什么方法可以让红色条移动到顶部而不改变代码中的顺序?

\documentclass{article}
\usepackage{pgfplots}


\begin{document}
\begin{tikzpicture}
\begin{axis}[xbar,]
\addplot[fill=red]
coordinates {(1,1)};
\label{red}

\addplot[fill=blue]
coordinates
{(1,1)}; \label{blue}
\end{axis}
\end{tikzpicture}

\begin{itemize}
\item[\ref{blue}] blub
\item[\ref{red}] red
\end{itemize}

\end{document}

在此处输入图片描述

答案1

xbar=-2pt, bar width=-10pt您可以通过调用(条形间隙和条形宽度的默认值的负数)来切换顺序:

\documentclass{article}
\usepackage{pgfplots}


\begin{document}
\begin{tikzpicture}
\begin{axis}[xbar=-2pt, bar width=-10pt]
\addplot[fill=red]
coordinates {(1,1)};
\label{red}

\addplot[fill=blue]
coordinates
{(1,1)}; \label{blue}
\end{axis}
\end{tikzpicture}

\begin{itemize}
\item[\ref{blue}] blub
\item[\ref{red}] red
\end{itemize}

\end{document}

或者,你可以使用

xbar,
/pgf/bar shift={%
        % total width = n*w + (n-1)*skip
        % -> subtract half for centering
        0.5*(\numplotsofactualtype*\pgfplotbarwidth + (\numplotsofactualtype-1)*(2pt))  - 
        % the '0.5*w' is for centering
        (.5+\plotnumofactualtype)*\pgfplotbarwidth - \plotnumofactualtype*(2pt)}

这是用于抵消条形的函数的负数。

相关内容