在每个oth旁边绘制特定条形图

2024-10-06 13:24:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个酒吧,稍后我想有3,4,5酒吧,我想在彼此旁边绘图。对于每个条形图,都会有一些x记号,但它们都与主图相同,但y记号值不同。我想把它们画在一起,而不是叠在一起

我的代码示例

y_ticks_1 = ['A1', 'A2', 'A3', 'A4'] 
x_ticks_1 = [2.5, 3.5, 4.5, 8.5]
y_ticks_2 = ['A1', 'A3', 'A4']
x_ticks_2 = [3.5, 6, 7.5]
#later on there will be more sets of data

width = 1
y_pos = arrange(len(y_ticks_1))
figure('bar', figsize=(11,5))
barh(y_ticks_1, x_ticks_1, align='edge', alpha=0.5)
barh(y_ticks_2, x_ticks_2, color='r', align='edge', alpha=0.5)
yticks(y_pos + width/2)
xlabel('yield (%)')

但当我这样做的时候,它只会改变y轴的长度,并且这些条仍然相互覆盖


Tags: posalpha绘图a1widtha3酒吧a4
1条回答
网友
1楼 · 发布于 2024-10-06 13:24:34

我将针对两组数据回答您的具体问题。可以使用负高度对齐刻度两侧的条形

y_ticks_1 = ['A1', 'A2', 'A3', 'A4'] 
x_ticks_1 = [2.5, 3.5, 4.5, 8.5]
y_ticks_2 = ['A1', 'A3', 'A4']
x_ticks_2 = [3.5, 6, 7.5]

y_pos = np.arange(len(y_ticks_1)+1)
plt.figure('bar', figsize=(11,5))
plt.barh(y_ticks_1, x_ticks_1, align='edge', height=0.3, alpha=0.5)
plt.barh(y_ticks_2, x_ticks_2, color='r', height=-0.3, align='edge', alpha=0.5)
plt.yticks(y_pos)
plt.xlabel('yield (\%)')

enter image description here

相关问题 更多 >