编辑:感谢管理员帮我解决了第二个问题,并附上了我的编译代码。由于我使用 Overleaf,所以它以另一种方式编译。这可能是我重复标记的原因。我添加了它的屏幕截图:
我正在尝试构建一个 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 编译(参见右上角的“菜单”按钮)