我正在尝试将两个条形图放在一起,就像下面一样,但是使用 xbar。
然而,事实证明这对我来说比要求的要难。这是我的代码:
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=0.8\linewidth,compat=1.17}
\begin{document}
\begin{tikzpicture}% table
\begin{axis}[
xbar,
bar width=0.7,
xlabel=Quantidade de vendedores/consumidores,
ylabel=Estado,
ytick=data,
yticklabels from table={data/num_sellers_per_state.dat}{State},
enlargelimits=0.05,
legend pos=south east,
]
% Customer data
\addplot table[
y expr=\coordindex,
x=CustomerSize,
] {data/num_sellers_per_state.dat};
% Seller data
\addplot table[
y expr=\coordindex,
x=SellerSize,
] {data/num_sellers_per_state.dat};
\legend{Consumidores,Vendedores}
\end{axis}
\end{tikzpicture}
\end{document}
以下是文件内容data/num_sellers_per_state.dat
:
State CustomerSize SellerSize
RR 46 0
AP 68 0
AC 81 1
AM 148 1
RO 253 2
TO 280 0
SE 350 2
AL 413 0
RN 485 5
PI 495 1
PB 536 6
MS 715 5
MA 747 1
MT 907 4
PA 975 1
CE 1336 13
PE 1652 9
GO 2020 40
ES 2033 23
DF 2140 30
BA 3380 19
SC 3637 190
PR 5045 349
RS 5466 129
MG 11635 244
RJ 12852 171
SP 41746 1849
我最终收到的是一个条形图,其中的条形图一个接一个地叠加在一起,如下所示。
我尝试了设置bar width
和bar shift
属性,但都不起作用。我查找了与此相关的多个问题,但它们似乎都仅适用于 ybars。
编辑:修正错别字。
答案1
欢迎使用 TeX.SX!实际上,您只需要增加绘图的高度或减少条形的宽度(或者更好的是,两者兼而有之):
\documentclass[border=1mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{filecontents}{num_sellers_per_state.dat}
State CustomerSize SellerSize
RR 46 0
AP 68 0
AC 81 1
AM 148 1
RO 253 2
TO 280 0
SE 350 2
AL 413 0
RN 485 5
PI 495 1
PB 536 6
MS 715 5
MA 747 1
MT 907 4
PA 975 1
CE 1336 13
PE 1652 9
GO 2020 40
ES 2033 23
DF 2140 30
BA 3380 19
SC 3637 190
PR 5045 349
RS 5466 129
MG 11635 244
RJ 12852 171
SP 41746 1849
\end{filecontents}
\begin{document}
\begin{tikzpicture}% table
\begin{axis}[
height=15cm,
xbar,
bar width=.15cm,
xlabel=Quantidade de vendedores/consumidores,
ylabel=Estado,
ytick=data,
yticklabels from table={num_sellers_per_state.dat}{State},
enlargelimits=0.05,
legend pos=south east,
]
% Customer data
\addplot table[
y expr=\coordindex,
x=CustomerSize,
] {num_sellers_per_state.dat};
% Seller data
\addplot table[
y expr=\coordindex,
x=SellerSize,
] {num_sellers_per_state.dat};
\legend{Consumidores,Vendedores}
\end{axis}
\end{tikzpicture}
\end{document}
(注意,我更改了代码中文件的路径,以使其能够与filecontents
。)