两行图表标签

两行图表标签

我创建了下面的图表,并想将 ylabel“Fusionierte Theater”改为每行一个单词。这样可以吗?我还想将图例中的“Anstalt”和“öffentlichen Rechts”改为两行。谁能帮我?

\centering
\begin{tikzpicture}
\pgfplotsset{width=7cm,compat=1.9}
\begin{axis}[
   xbar stacked,
   legend style={
   legend columns=3,
       at={(xticklabel cs:0.52)},
       anchor=north,
       draw=none,},
   ytick=data,
   axis y line*=none,
   axis x line*=bottom,
   tick label style={font=\footnotesize},
   legend style={font=\footnotesize,legend cell align=left},
   label style={font=\footnotesize},
   xtick={0,5,10,15,20,25,30,35,40},
   width=.9\textwidth,
   bar width=6mm,
   yticklabels={{Fusionierte Theater}, 
   {Stadttheater}, 
   {Landestheater}, 
   {Staatstheater}, },
   xmin=0,
   xmax=40,
   area legend,
   y=8mm,
   enlarge y limits={abs=0.625},
   nodes near coords,
   nodes near coords style={text=black,anchor=center},
   visualization depends on=y \as \pgfplotspointy,
   every axis plot/.append style={fill}
]
\addplot[yellow] coordinates
 {(8,0) (14,1) (6,2) (6,3)};
\addplot[green] coordinates
 {(0,0) (8,1) (1,2) (5,3)};
\addplot[orange] coordinates
 {(0,0) (14,1) (0,2) (5,3)}; 
 \addplot[cyan] coordinates
 {(0,0) (0,1) (0,2) (6,3)}; 
\addplot[pink] coordinates
 {(0,0) (2,1) (1,2) (0,3)};
\addplot[red] coordinates
 {(0,0) (0,1) (1,2) (0,3)};
\legend{GmbH,Regiebetrieb,Eigenbetrieb,Stiftung,Anstalt öffentlichen Rechts,Körperschaft öffentlichen Rechts}


\end{axis}  
\end{tikzpicture}
\caption{X}
\label{fig:stats}
\end{figure}

答案1

正如所提到的TikZ 节点中的手动/自动换行和文本对齐,例如,如果您align=left在节点选项中,您可以使用它\\来添加换行符。在您的例子中,这意味着yticklabel style={align=right}用于刻度标签,以及图例条目nodes={align=left}内部。legend style

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{width=7cm,compat=1.9}
\begin{axis}[
   xbar stacked,
   legend style={
   legend columns=3,
       at={(xticklabel cs:0.52)},
       anchor=north,
       draw=none,},
   ytick=data,
   axis y line*=none,
   axis x line*=bottom,
   tick label style={font=\footnotesize},
   legend style={
      font=\footnotesize,
      nodes={align=left}, % <-- added
      legend cell align=left},
   label style={font=\footnotesize},
   xtick={0,5,10,15,20,25,30,35,40},
   width=.9\textwidth,
   bar width=6mm,
   yticklabels={{Fusionierte\\Theater}, % <-- added linebreak
   {Stadttheater}, 
   {Landestheater}, 
   {Staatstheater}, },
   xmin=0,
   xmax=40,
   area legend,
   y=8mm,
   enlarge y limits={abs=0.625},
   nodes near coords,
   nodes near coords style={text=black,anchor=center},
   visualization depends on=y \as \pgfplotspointy,
   every axis plot/.append style={fill},
   yticklabel style={align=right}, % <-- added
]
\addplot[yellow] coordinates
 {(8,0) (14,1) (6,2) (6,3)};
\addplot[green] coordinates
 {(0,0) (8,1) (1,2) (5,3)};
\addplot[orange] coordinates
 {(0,0) (14,1) (0,2) (5,3)}; 
 \addplot[cyan] coordinates
 {(0,0) (0,1) (0,2) (6,3)}; 
\addplot[pink] coordinates
 {(0,0) (2,1) (1,2) (0,3)};
\addplot[red] coordinates
 {(0,0) (0,1) (1,2) (0,3)};
 
\legend{
 GmbH,
 Regiebetrieb,
 Eigenbetrieb,
 Stiftung,
 Anstalt\\öffentlichen Rechts, % <-- added line break
 Körperschaft öffentlichen Rechts
 }


\end{axis}  
\end{tikzpicture}

\end{document}

相关内容