我正在使用 lualatex,但在将 grouplot 的标签定位到图的底部时遇到了麻烦。这是我的代码
% !Mode:: "TeX:UTF-8"
\documentclass[a4paper,12pt]{book}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{amsmath,empheq}
\usepackage{mathtools}
\usepackage{amscd}
\usepackage{amsxtra}
\usepackage{amsthm}
\usepackage{unicode-math}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
\setmainfont{Linux Libertine O}
\setmathfont[bold-style=ISO]{Cambria Math}
% pgfplotsset style
\pgfplotsset{
gaxisonly axis/.style={
axis lines=middle,
axis line style={->},
ticks=none,
clip=false
}
}
\begin{document}
\begin{figure}[htbp]
\centering
\begin{tikzpicture}[font=\footnotesize]
\begin{groupplot}[
group style={
group size=4 by 1,
xlabels at=edge bottom,
vertical sep = 1.5cm},
gaxisonly axis,
height=4cm,
width=4cm]
\nextgroupplot[xlabel={Function 1}]
\addplot[blue,mark=none,domain=-0.5:0.5,samples=100, thick]{abs(x)};
\nextgroupplot[xlabel={Function 2}]
\addplot[blue,mark=none,domain=-0.5:0,samples=100, thick]{-x};
\addplot[blue,mark=none,domain=0:0.5,samples=100, thick]{x^(1/3)};
\nextgroupplot[xlabel={Function 3}]
\addplot[blue,mark=none,domain=-0.5:0.5,samples=100, thick]{sqrt(abs(x))};
\nextgroupplot[xlabel={Function 4}]
\addplot[blue,mark=none,domain=-0.5:0.5,samples=100, thick]{x/abs(x)*abs(x)^(1/3)};
\addplot[blue,mark=none,domain=-0.5:0,samples=100, thick]{-abs(x)^(1/3)};
\end{groupplot}
\end{tikzpicture}
\caption{Some functions}
\end{figure}
\end{document}
结果如下
如您所见,文本位于图表的 x 轴上方,而不是底部。我该如何修复?
答案1
此标签定位是由于axis lines=middle
风格而发生的gaxisonly axis
。根据 pgfplots 文档,此参数设置的内容类似于
every axis x label/.style={at={(current axis.left of origin)},anchor=south west}
有两种方法可以避免这种情况:
- 使用
axis lines*=middle
,在你的情况下将提供正确的结果 every axis x label/.style={at={(current axis.south)}, anchor=north}
设置线条样式后添加类似的内容。