가로 막대 차트를 사용하여 서로 다른 두 연도의 백분율을 비교하고 싶습니다.
2년(1996년과 2011년)에 대한 값은 pgfplots 테이블을 통해 제공됩니다. 1996년 값이 해당 2011년 값 위에 표시되기를 원합니다. 그러나 올바른 순서로 추가하면 범례 항목이 다른 방향으로 정렬됩니다(2011이 먼저 표시된 다음 1996이 표시됨).
MWE:
\documentclass[a4paper,11pt,twoside]{memoir}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread[col sep=comma,header=true]{
Type,1996,2011
type1,41.26,46.57
type2,55.42,38.76
type3,0.14,0.11
type4,0.24,0.05
type5,0.79,13.20
type6,2.14,1.31
}\data
\begin{figure} [tb]%
\centering
\begin{tikzpicture}
\begin{axis}[
width=12cm,
xbar,
xtick={0,10,20,...,100},
xmin=0,
xmax=100,
grid=major,
nodes near coords, nodes near coords align={horizontal},
symbolic y coords={type6,type5,type4,type3,type2,type1},
ylabel={Type},
xlabel={Percentage},
y label style={at={(-0.1,0.5)}},
enlarge x limits={abs=0}
]
\addplot table [x=1996, y=Type] {\data};
\addplot table [x=2011, y=Type] {\data};
\legend{1996,2011}
\end{axis}
\end{tikzpicture}
\label{fig:distribution}
\end{figure}
\end{document}
설명된 대로 범례 순서를 수동으로 변경하려고 했습니다.이 게시물, 그러나 이로 인해 범례의 막대와 텍스트 사이에 보기 흉한 수직 정렬이 발생했습니다.
\documentclass[a4paper,11pt,twoside]{memoir}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread[col sep=comma,header=true]{
Type,1996,2011
type1,41.26,46.57
type2,55.42,38.76
type3,0.14,0.11
type4,0.24,0.05
type5,0.79,13.20
type6,2.14,1.31
}\data
\begin{figure} [tb]%
\centering
\begin{tikzpicture}
\begin{axis}[
width=12cm,
xbar,
xtick={0,10,20,...,100},
xmin=0,
xmax=100,
grid=major,
nodes near coords, nodes near coords align={horizontal},
symbolic y coords={type6,type5,type4,type3,type2,type1},
ylabel={Type},
xlabel={Percentage},
y label style={at={(-0.1,0.5)}},
enlarge x limits={abs=0},
extra description/.code={
\matrix[/pgfplots/every axis legend]
{
\ref{1996} \pgfmatrixnextcell \node{1996};\\
\ref{2011} \pgfmatrixnextcell \node{2011};\\
};
}
]
\addplot table [x=2011, y=Type] {\data};
\label{2011}
\addplot table [x=1996, y=Type] {\data};
\label{1996}
\end{axis}
\end{tikzpicture}
\label{fig:distribution}
\end{figure}
\end{document}
게시물에서 제안한 대로 tikz
매뉴얼을 참고했지만 이 문제에 대한 해결책을 찾지 못했습니다(적어도 내 라텍스 기술에 대해서는). 힌트가 있나요?
답변1
reverse legend
당신이 원하는 것을 정확히 수행해야 하는 몇 가지 키가 있습니다 .
옵션 목록에 추가하면
\documentclass[a4paper,11pt,twoside]{memoir}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\thispagestyle{empty}
\pgfplotstableread[col sep=comma,header=true]{
Type,1996,2011
type1,41.26,46.57
type2,55.42,38.76
type3,0.14,0.11
type4,0.24,0.05
type5,0.79,13.20
type6,2.14,1.31
}\data
\begin{figure} [tb]%
\centering
\begin{tikzpicture}
\begin{axis}[
width=12cm,
xbar,
xtick={0,10,20,...,100},
xmin=0,
xmax=100,
grid=major,
nodes near coords, nodes near coords align={horizontal},
symbolic y coords={type6,type5,type4,type3,type2,type1},
ylabel={Type},
xlabel={Percentage},
y label style={at={(-0.1,0.5)}},
enlarge x limits={abs=0},
reverse legend,
]
\addplot table [x=2011, y=Type] {\data};
\addplot table [x=1996, y=Type] {\data};
\legend{2011,1996}
\end{axis}
\end{tikzpicture}
\label{fig:distribution}
\end{figure}
\end{document}