为什么我的 xlabel 显示多次?

为什么我的 xlabel 显示多次?

编辑:感谢管理员帮我解决了第二个问题,并附上了我的编译代码。由于我使用 Overleaf,所以它以另一种方式编译。这可能是我重复标记的原因。我添加了它的屏幕截图:

这里你可以看到它在 Overleaf 中的样子(x 轴有多个 PCK、PK 和 OK 标签)

我正在尝试构建一个 x 轴上有 4 个标签的堆积柱形图。但是,如果我使用 增加尺寸,它们会多次显示width=0.7\linewidth。如何只显示列所在的 x 标签?

另外,我在手册中没有找到pgfplot关于如何格式化和定位“坐标附近的节点”的任何线索,但这是第二个关注点。

附言:这是我在 Latex 中的第一个情节,所以可能会有一些缺陷,但我会尽力 ;)

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    width=0.7\linewidth,
    ybar stacked, nodes near coords,
    bar width=30pt,
    enlargelimits=0.15,
   ylabel={Prevalence},
   xlabel={Category},
    symbolic x coords={CK, PCK, PK, OK}
   ]
\addplot coordinates {(CK,3) (PCK,13) 
  (PK,3) (OK,14)};
\addplot coordinates {(CK,6) (PCK,5) 
  (PK,3) (OK,3)};
\addplot coordinates {(CK,3) (PCK,2)
  (PK,1) (OK,3)};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

可能键值对xtick=data可以解决问题 - 或者您可以指定xtick={CK, PCK, PK, OK}或保留其中一些为symbolic x coords空:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\noindent
\begin{tikzpicture}
\begin{axis}[
    width=\linewidth,
    ybar stacked, 
    nodes near coords,
    bar width=30pt,
    enlargelimits=0.15,
    ylabel={Prevalence},
    xlabel={Category},
%    symbolic x coords={CK,, PCK,, PK,, OK},
    symbolic x coords={CK, PCK, PK, OK},
    xtick=data
%    xtick={CK, PCK, PK, OK}
   ]
\addplot coordinates {(CK,3) (PCK,13) 
  (PK,3) (OK,14)};
\addplot coordinates {(CK,6) (PCK,5) 
  (PK,3) (OK,3)};
\addplot coordinates {(CK,3) (PCK,2)
  (PK,1) (OK,3)};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

回答你的问题的第二部分(如何格式化nodes near coords),使用nodes near coords style

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    width=0.7\linewidth,
    ybar stacked, 
    nodes near coords,
    nodes near coords style = {font = \huge, yshift = 2pt}, % <-- Added
    bar width=30pt,
    enlargelimits=0.15,
    ylabel={Prevalence},
    xlabel={Category},
    symbolic x coords={CK, PCK, PK, OK}
   ]
\addplot coordinates {(CK,3) (PCK,13) 
  (PK,3) (OK,14)};
\addplot coordinates {(CK,6) (PCK,5) 
  (PK,3) (OK,3)};
\addplot coordinates {(CK,3) (PCK,2)
  (PK,1) (OK,3)};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

使用 Overleaf 编译(参见右上角的“菜单”按钮)

在此处输入图片描述

在此处输入图片描述

相关内容