在 pgfplots 中拉伸类别和 xbars

在 pgfplots 中拉伸类别和 xbars

我如何垂直拉伸类别和 xbar?不同的 xbar 之间应该有更多空间。

我的文件datatable.txt

one two three
A   2   0.3
B   3   0.4
C   4   0.5
D   5   0.6
E   4   0.7
F   3   0.6
G   2   0.5
H   3   0.4
I   4   0.3
J   5   0.4
K   4   0.5
L   3   0.6
M   2   0.7
N   3   0.6

我的代码:

\documentclass{article}

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

\begin{document}

\begin{figure}[h!]
\centering
\begin{tikzpicture}

\begin{axis}[
    xbar,
    xmin=1,
    xmax=6,
    ytick=data,
    yticklabels from table={datatable.txt}{one}
]
\addplot plot [error bars/.cd, x dir = both, x explicit] table [x=two, y expr=\coordindex, x error = three] {datatable.txt};
\end{axis}
\end{tikzpicture}
\caption{xbars and standard deviations}
\end{figure}

\end{document}

答案1

您可以通过以下方式增加条形之间的空间:

  1. 增加图的高度:例如更改height=10cmheight = 15cm
  2. 保持相同的高度,但使条形变窄,例如将bar width=10pt(默认)更改为bar width=7.5pt;或
  3. 您可以组合高度和条宽调整。

这是一个高大的图,类别之间有更多间距,height=15cm并且xbar={7.5pt}

在此处输入图片描述

这是代码:

\documentclass{article}

\usepackage{pgfplots}
\usepackage{pgfplotstable}

\pgfplotstableread[header=true]{
    one two three
    A   2   0.3
    B   3   0.4
    C   4   0.5
    D   5   0.6
    E   4   0.7
    F   3   0.6
    G   2   0.5
    H   3   0.4
    I   4   0.3
    J   5   0.4
    K   4   0.5
    L   3   0.6
    M   2   0.7
    N   3   0.6
}\data

\pgfplotsset{compat=newest, width=10cm, height=15cm}

\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}

\begin{axis}[
    xbar,
    bar width={7.5pt},
    xmin=1,
    xmax=6,
    symbolic y coords={N,M,L,K,J,I,H,G,F,E,D,C,B,A},
    ytick=data,
    ytick style={draw=none}
]
\addplot [
   error bars/.cd,
   x dir = both,
   x explicit,
   ] table [
   x=two,
   y=one, 
   x error = three
   ] {\data};
\end{axis}
\end{tikzpicture}
\caption{xbars and standard deviations}
\end{figure}

\end{document}

相关内容