我创建了下面的图表,并想将 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}