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)}

이는 막대를 오프셋하는 데 사용되는 기능의 음수입니다.

관련 정보