这个答案描述了如何为带框轴创建多行轴标签。但是,当我尝试对非带框轴执行此操作时,它失败了。例如,
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=MWE,
xlabel style={align=center}, xlabel={some\\x\\label},
ylabel style={align=center}, ylabel={some\\y\\label},
axis x line=middle,
% axis y line=middle,
xtick=\empty,
ytick=\empty,
]
\addplot[
samples=100,
domain=-2:2,
] {x};
\end{axis}
\end{tikzpicture}
\end{document}
我怎样才能让 x 轴标签也跨越 3 条线?
我知道上面链接的问题也讨论了使用text width
作为一种可能的解决方案。但是,xlabel style=...
在我的示例中,用 替换xlabel style={align=center, text width=2cm}
不会改变结果。
答案1
您的代码的“问题”在于您更改axis x line
后你已经改变了xlabel style
因此你的更改将被覆盖。因此,只需更改第一个axis x line
,您就会收到预期的结果。
% used PGFPlots v1.17
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=MWE,
axis x line=middle, % <-- moved up
xlabel style={align=center}, xlabel={some\\x\\label},
ylabel style={align=center}, ylabel={some\\y\\label},
xtick=\empty,
ytick=\empty,
]
\addplot[
samples=100,
domain=-2:2,
] {x};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
xlabel
打印为节点。因此,您可以设置特定的文本宽度。这允许换行。可以通过选项进行修改xlabel style
。第 173 页的文档中显示了一个示例:
xlabel style={align=right,text width=3cm}
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=MWE,
xlabel style= xlabel style={align=left,text width=2cm},{align=center}, xlabel={some\\x\\label},
ylabel style={align=center}, ylabel={some\\y\\label},
axis x line=middle,
% axis y line=middle,
xtick=\empty,
ytick=\empty,
]
\addplot[
samples=100,
domain=-2:2,
] {x};
\end{axis}
\end{tikzpicture}
\end{document}
编辑
只要 和xaxis
分别yaxis
位于默认位置(即底部和左侧),轴标签就会遵循多线,但如果yaxis
或xaxis
移动到中心/中间,多线环境就不会起作用,我们会得到单线轴标签
在下面的例子中,将 移到yaxis
中间,但将 保留在xaxis
默认的底部位置——这里xaxis
保留了多行环境,但对于yaxis
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel style={
align=left,
text width=3cm
},
xlabel=A quite long label with a line break,
title=MWE,
% xlabel style={
% align=center,
% text width=1cm
% },
% {align=center},
% xlabel={some x label},
ylabel style={align=center},
ylabel={some\\y\\label},
% axis x line=middle,
axis y line=middle,
% xtick=\empty,
% ytick=\empty,
]
\addplot[
samples=100,
domain=-2:2,
] {x};
\end{axis}
\end{tikzpicture}
\end{document}
现在如果xaxis
也移动到中间,这里的多线也不会被遵守
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel style={
align=left,
text width=3cm
},
xlabel=A quite long label with a line break,
title=MWE,
% xlabel style={
% align=center,
% text width=1cm
% },
% {align=center},
% xlabel={some x label},
ylabel style={align=center},
ylabel={some\\y\\label},
axis x line=middle,
axis y line=middle,
% xtick=\empty,
% ytick=\empty,
]
\addplot[
samples=100,
domain=-2:2,
] {x};
\end{axis}
\end{tikzpicture}
\end{document}
也许其中一个传说可以解释