分组条形图-缩放问题

分组条形图-缩放问题

我正在尝试使用 tikz 为出版物绘制条形图,对于包含 5 个条形的图表,它工作得很好,只要我使用多于或少于 5 个条形,条形就会相互挤压,或者 tikz 会创建多个标签并将条形拉开。在我看来,所有图表都具有相同的大小,这就是问题所在。

以下是有效图表中的代码:

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[ 
    xbar,
    y axis line style = { opacity = 0 },
    axis x line       = none,
    tickwidth         = 0pt,
    enlarge y limits  = 0.2,
    enlarge x limits  = 0.02,
    symbolic y coords = {Infizierte Bewohner:innen in Prozent, Zuzahlung PG2+, Zuzahlung PG1, Träger-Art, Einbettzimmer in Prozent},
    nodes near coords,
    legend style={at={(1.2,1)}}
  ]
  \addplot coordinates {    (2.33,Infizierte Bewohner:innen in Prozent)        
                        (20.53,Zuzahlung PG2+)
                                        (20.33,Zuzahlung PG1)  
                                        (14.1,Träger-Art) 
                                        (19.3,Einbettzimmer in Prozent)};
  
  \addplot coordinates {    (35.38,Infizierte Bewohner:innen in Prozent)         
                        (12.63,Zuzahlung PG2+) 
                                    (12.98,Zuzahlung PG1)   
                                    (19.63,Träger-Art)      
                                    (14.01,Einbettzimmer in Prozent)};

\legend{Low/Non-Profit, High/For Profit}

  \end{axis}
\end{tikzpicture}

这个情节正常运作

下面是 5+ 条杠的那个:

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[ 
    xbar,
    y axis line style = { opacity = 0 },
    axis x line       = none,
    tickwidth         = 0pt,
  enlarge y limits  = 0.2,
  enlarge x limits  = 0.02,
     symbolic y coords = {Infizierte Mitarbeiter:innen in Prozent, Infizierte Bewohner:innen in Prozent, Fachkraftquote, Mitarbeiter:innenquote, Zuzahlung PG2+, Zuzahlung PG1, Träger-Art, Anzahl an Betten},
    nodes near coords,
    legend style={at={(1.2,1.2)}}
  ]
  \addplot coordinates {    (2.78,Infizierte Mitarbeiter:innen in Prozent)
                        (2.71,Infizierte Bewohner:innen in Prozent)        
                        (2.11,Fachkraftquote)
                        (2.16,Mitarbeiter:innenquote)
                        (1.91,Zuzahlung PG2+)
                                        (1.85,Zuzahlung PG1)  
                                        (2.34,Träger-Art) 
                                        (1.54,Anzahl an Betten)     
                                        };
  
  \addplot coordinates {    (2.01,Infizierte Mitarbeiter:innen in Prozent)         
                        (2.07,Infizierte Bewohner:innen in Prozent)
                        (2.01,Fachkraftquote)
                        (1.83,Mitarbeiter:innenquote)
                        (2.44,Zuzahlung PG2+) 
                                    (2.29,Zuzahlung PG1)   
                                    (1.91,Träger-Art)  
                                    (2.81,Anzahl an Betten)     
                                    };

\legend{Low, High}

  \end{axis}
\end{tikzpicture}
 
 \caption{Signifikante Unterschiede bei der Anzahl der Ausbrüche. Quelle: Eigene Darstellung.}
\label{fig:ausbruch}
\end{figure}

这里,标签是错误的,情节混乱。

并且只有 2 个小节的情节:

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[ 
    xbar,
   y axis line style = { opacity = 0 },
    axis x line       = none,
    tickwidth         = 0pt,
 enlarge y limits  = 0.2,
  enlarge x limits  = 0.02,
    symbolic y coords = {Fachkraftquote, Anzahl der Betten},
    nodes near coords,
    legend style={at={(1.4,1)}}
  ]
  \addplot coordinates {     (37.94,Fachkraftquote)   
                                    (32.23,Anzahl der Betten)   
                                        };
  
  \addplot coordinates {    (32.83,Fachkraftquote) 
                                    (33.44,Anzahl der Betten)   
                                    };

\legend{Low, High}

  \end{axis}
\end{tikzpicture}
 
\caption{Signifikante Unterschiede in der Dauer der Ausbrüche (mindestens ein Tag) gruppiert nach UV.Quelle: Eigene Darstellung.}
\label{fig:dauer0}
\end{figure}

这里的标签也是错误的,并且条形图之间的距离太远。

有人能帮帮我吗?Stackoverflow 和 Reddit 上的搜索功能以及 tikz 的文档对我没有帮助 - 可能是因为我还不太了解这个问题(我两周前才开始使用 latex)。

也许还有一个问题:是否可以在我的图中添加置信区间?

答案1

您需要设置ytick=data。在绘制轴线时,您最好查看放大限制效果。放大限制将使两个条形图绘制在适当的距离。另外,您的轴高度对于超过 5 个条形图来说太短了。我在第一个图中调整了 y 刻度标签样式,以允许 y 刻度标签中有多条线。我还稍微调整了图例样式以有两列图例。我将第一个图宽度设置为适合页面布局。您需要根据页面布局调整宽度。这就是为什么您应该提供最小的工作示例。因为我的设置只适用于这种特殊情况。您没有包括您正在使用的文档类。我将使用article类作为示例。以下是一个工作示例:

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
  \begin{axis}[ 
    xbar,
    y axis line style = { opacity = 0 },
    axis x line = none,
    height=13cm,
    width=14cm,
    tickwidth = 0pt,
    ytick = data,
    symbolic y coords = {Infizierte Mitarbeiter:innen in Prozent, Infizierte Bewohner:innen in Prozent, Fachkraftquote, Mitarbeiter: innenquote, Zuzahlung PG2+, Zuzahlung PG1, Träger-Art, Anzahl an Betten},
    yticklabel style={align=right,text width=3cm},
    nodes near coords,
    legend style = {at={(1,1.05)}},
    legend columns = 2,
  ]
\addplot coordinates {
(2.78,Infizierte Mitarbeiter:innen in Prozent)
(2.71,Infizierte Bewohner:innen in Prozent)        
(2.11,Fachkraftquote)
(2.16,Mitarbeiter: innenquote)
(1.91,Zuzahlung PG2+)
(1.85,Zuzahlung PG1)  
(2.34,Träger-Art) 
(1.54,Anzahl an Betten)
};
  
\addplot coordinates {
(2.01,Infizierte Mitarbeiter:innen in Prozent)(2.07,Infizierte Bewohner:innen in Prozent)
(2.01,Fachkraftquote)
(1.83,Mitarbeiter: innenquote)
(2.44,Zuzahlung PG2+) 
(2.29,Zuzahlung PG1)   
(1.91,Träger-Art)  
(2.81,Anzahl an Betten)     
};

\legend{Low, High}
\end{axis}
\end{tikzpicture}
 
\caption{Signifikante Unterschiede bei der Anzahl der Ausbrüche. Quelle: Eigene Darstellung.}
\label{fig:ausbruch}
\end{figure}

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[ 
    xbar,
    y axis line style = { opacity = 0 },
    axis x line = none,
    tickwidth = 0pt,
    symbolic y coords = {Fachkraftquote, Anzahl der Betten},
    ytick = data,
    nodes near coords,
    enlarge y limits = 1,
    enlarge x limits = 0.5,
    legend style={at={(1,1)}},
    legend columns=2,
]
\addplot coordinates {
(37.94,Fachkraftquote) (32.23,Anzahl der Betten)
};
\addplot coordinates {
(32.83,Fachkraftquote) (33.44,Anzahl der Betten)
};
\legend{Low, High}
\end{axis}
\end{tikzpicture}
\caption{Signifikante Unterschiede in der Dauer der Ausbrüche (mindestens ein Tag) gruppiert nach UV.Quelle: Eigene Darstellung.}
\label{fig:dauer0}
\end{figure}

\end{document}

在此处输入图片描述

相关内容