在 pgfplots 中将 xticks 居中

在 pgfplots 中将 xticks 居中

我妻子正在写她的硕士论文,我们正试着制作一些条形图来配合使用。我们设法创建了一个好看的图表,但标签/xtick 未居中对齐。添加更多 addplots 时,情况变得更糟。我们都是 LaTex 新手,即使浏览了好几个小时的网站和手册,我还是找不到解决这个问题的方法。

我第一次尝试“MWE”:

\documentclass{article}  

\usepackage[utf8]{inputenc}
\usepackage{tipa}

\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}


\begin{tikzpicture}
\pgfplotsset{width=10 cm}                                       
\begin{axis} [
symbolic x coords={Label 1,Label 2},        
xtick={Label 1, Label 2},
x tick label style={rotate=45, anchor=east, align=center},
axis lines=left,
y label style={rotate=-90},
ylabel=\Large{\textbf{\%}},                                 
title= \Large{Some Heading} ,               
legend style={at={(0.5,-0.10)},
    anchor=north,legend columns=1},                     
    ybar=0pt ,
    ymin=0,
    ymax=50,                                                
    samples=2,
    domain=1:2,
    bar width=2.5cm,                                
    enlarge x limits={abs=3.2cm},   
]
\addplot [blue,fill=blue]                       
coordinates{ (Label 1,35.5) } ;
\addplot [red,fill=red]
coordinates{ (Label 2,14.8) } ;

\end{axis}
\end{tikzpicture}

\end{document}

请帮助我们找到解决方案。也欢迎提出使用其他(更简单/更好)软件包的建议。

谢谢你!

答案1

是這樣嗎?

在此处输入图片描述

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{tipa}

\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}


\begin{tikzpicture}
\pgfplotsset{width=10 cm}
\begin{axis} [
symbolic x coords={Label 1,Label 2},
xtick={Label 1, Label 2},
x tick label style={rotate=45, anchor=east, align=center},
axis lines=left,
y label style={rotate=-90},
ylabel=\Large{\textbf{\%}},
title= \Large{Some Heading} ,
legend style={at={(0.5,-0.10)},
    anchor=north,legend columns=1},
    ybar=0pt ,
    ymin=0,
    ymax=50,
    samples=2,
    domain=1:2,
    bar width=0.5cm,                       %% changed
    ybar=-0.5cm,                           %% new
    enlarge x limits={abs=3.2cm},
    nodes near coords,                     %% new 
    nodes near coords align={vertical},    %% new
]
\addplot [blue,fill=blue]
coordinates{ (Label 1,35.5) } ;
\addplot [red,fill=red]
coordinates{ (Label 2,14.8) } ;

\end{axis}
\end{tikzpicture}

\end{document}

我已在代码中标记了所做的更改。我已将条形宽度更改为0.5cm(假设在添加更多条形时您可能需要它),并将它们移动适当的量,以便x ticklabel在中心对齐

bar width=0.5cm,                       %% changed
ybar=-0.5cm,                           %% new

我还添加了y顶部条形的值

nodes near coords,                     %% new 
nodes near coords align={vertical},    %% new

如果你希望labels 也居中,你可以使用xshiftsyshift

x tick label style={rotate=45, anchor=east,
              align=center,xshift=0.4cm,yshift=-0.4cm},

适当改变移位值。

希望这有用。

相关内容