每 n 个小节添加空格

每 n 个小节添加空格

有人知道如何在我的 pgfplot 的条形图之间留出一些空间吗?我想在它们之间添加一些文本。我尝试在数据中添加一个空行,但它会弄乱 yticklabels(参见所附屏幕截图)。我想避免使用符号 y 坐标,因为有很多 y 坐标(我在 MWE 中只包含了 6 个)。也许有更简单的解决方案?也许使用 groupplots 库?

任何建议都将不胜感激!✌

答案1

你可以加

{} 0 0 0 0 

在数据文件中,每个“组”之间。

在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents*}{Nachwuchsgewinnung.dat}
GR  A   B   C   D
Göttingen\ (n=62)   1.6129  8.0645  45.1613 45.1613
Sachsen\ (n=90) 0   13.3333 40  46.6667
Coburg\ (n=24)  4.1667  37.5    37.5    20.8333
{} 0 0 0 0 
Göttingen\ (n=61)   3.2787  24.5902 37.7049 34.4262
Sachsen\ (n=89) 0   22.4719 42.6966 34.8315
Coburg\ (n=25)  8   48  16  28
\end{filecontents*}

\documentclass{standalone}

\usepackage[utf8]{inputenc}
%\usepackage{newpxtext,newpxmath}

\usepackage{pgfplots}
\pgfplotsset{%
    compat=1.14,
    /pgf/number format/assume math mode=true,
    title style={font=\bfseries\footnotesize\sffamily},
    every axis/.append style={font=\scriptsize\sffamily}
    }

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    title style={yshift=-1ex},
    xbar stacked,
    bar shift=0pt,
    bar width=6pt,
    scale only axis,
    width=9.75cm,
    y=1em,
    xmin=0, xmax=100,
    minor x tick num=1,
    xtick style={black,thin},
    xticklabel={\pgfmathprintnumber[precision=0]\tick\%},
    ytick style={draw=none},
    yticklabel style={xshift=0.5ex},
    enlarge y limits={abs=10pt},
    %/pgf/number format/.cd,fixed,fixed zerofill,precision=0,
    %nodes near coords,
    legend style={
        at={(0.5,-0.25)},
        anchor=north,
        legend columns=-1,
        draw=none,
        legend cell align=left},
    title=Attraktivität der Region zur Gewinnung von Jungmedizinern erhöhen durch…,
    ytick=data,
    y dir=reverse,
    yticklabels from table={Nachwuchsgewinnung.dat}{GR}]

    \addplot+[fill] table[x=A,y expr=\coordindex]{Nachwuchsgewinnung.dat};
    \addplot+[fill] table[x=B,y expr=\coordindex]{Nachwuchsgewinnung.dat};
    \addplot+[fill] table[x=C,y expr=\coordindex]{Nachwuchsgewinnung.dat};
    \addplot+[fill] table[x=D,y expr=\coordindex]{Nachwuchsgewinnung.dat};
    \legend{sehr unwichtig, eher unwichtig, eher wichtig, sehr wichtig}

    \node at (50,3) {some text here};
\end{axis}
\end{tikzpicture}

\end{document}

每 n 个小节添加空格

如果您需要每三小节添加一个空格,那么您可以y expr稍微修改一下以自动实现这一点,而无需更改输入。

为了使修改更容易,我定义了一个函数

declare function={
         Y(\x)={\x+floor(\x/3)};
       }

并使用

y expr=Y(\coordindex)

在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents*}{Nachwuchsgewinnung.dat}
GR  A   B   C   D
Göttingen\ (n=62)   1.6129  8.0645  45.1613 45.1613
Sachsen\ (n=90) 0   13.3333 40  46.6667
Coburg\ (n=24)  4.1667  37.5    37.5    20.8333
Göttingen\ (n=61)   3.2787  24.5902 37.7049 34.4262
Sachsen\ (n=89) 0   22.4719 42.6966 34.8315
Coburg\ (n=25)  8   48  16  28
Göttingen\ (n=62)   1.6129  8.0645  45.1613 45.1613
Sachsen\ (n=90) 0   13.3333 40  46.6667
Coburg\ (n=24)  4.1667  37.5    37.5    20.8333
Göttingen\ (n=61)   3.2787  24.5902 37.7049 34.4262
Sachsen\ (n=89) 0   22.4719 42.6966 34.8315
Coburg\ (n=25)  8   48  16  28
Göttingen\ (n=62)   1.6129  8.0645  45.1613 45.1613
Sachsen\ (n=90) 0   13.3333 40  46.6667
Coburg\ (n=24)  4.1667  37.5    37.5    20.8333
Göttingen\ (n=61)   3.2787  24.5902 37.7049 34.4262
Sachsen\ (n=89) 0   22.4719 42.6966 34.8315
Coburg\ (n=25)  8   48  16  28
\end{filecontents*}

\documentclass[border=5mm]{standalone}

\usepackage[utf8]{inputenc}
%\usepackage{newpxtext,newpxmath}

\usepackage{pgfplots}
\pgfplotsset{%
    compat=1.14,
    /pgf/number format/assume math mode=true,
    title style={font=\bfseries\footnotesize\sffamily},
    every axis/.append style={font=\scriptsize\sffamily}
    }

\begin{document}

\begin{tikzpicture}[
   declare function={
     Y(\x)={\x+floor(\x/3)};
   }]
\begin{axis}[
    title style={yshift=-1ex},
    xbar stacked,
    bar shift=0pt,
    bar width=6pt,
    scale only axis,
    width=9.75cm,
    y=1em,
    xmin=0, xmax=100,
    minor x tick num=1,
    xtick style={black,thin},
    xticklabel={\pgfmathprintnumber[precision=0]\tick\%},
    ytick style={draw=none},
    yticklabel style={xshift=0.5ex},
    enlarge y limits={abs=10pt},
    %/pgf/number format/.cd,fixed,fixed zerofill,precision=0,
    %nodes near coords,
    legend style={
        at={(0.5,-0.25)},
        anchor=north,
        legend columns=-1,
        draw=none,
        legend cell align=left},
    title=Attraktivität der Region zur Gewinnung von Jungmedizinern erhöhen durch…,
    ytick=data,
    y dir=reverse,clip=false,
    yticklabels from table={Nachwuchsgewinnung.dat}{GR}
]

    \addplot+[fill] table[x=A,y expr=Y(\coordindex)]{Nachwuchsgewinnung.dat};
    \addplot+[fill] table[x=B,y expr=Y(\coordindex)]{Nachwuchsgewinnung.dat};
    \addplot+[fill] table[x=C,y expr=Y(\coordindex)]{Nachwuchsgewinnung.dat};
    \addplot+[fill] table[x=D,y expr=Y(\coordindex)]{Nachwuchsgewinnung.dat};
    \legend{sehr unwichtig, eher unwichtig, eher wichtig, sehr wichtig}

    \node at (50,3) {some text here};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容