当我使用brokenaxis()时,为什么Xticklabel会移动?

2024-05-08 17:09:15 发布

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

我试图绘制一个y轴断裂的条形图。 如果没有断开的轴,它看起来是这样的: plot without broken axis

对于断轴,它看起来是这样的:plot with broken axis

我希望x-tick标签如图所示,没有断轴,但我不知道如何! 无论我尝试什么,只显示9个标签中的5个,并且始终缺少第一个标签,尽管计算x-tick标签的代码相同

以下是我在没有断线的情节中使用的代码:

#computing dataframe
column1 = np.array(('Grünland','KA','MA','SG','SW','WG','WR','WW','ZR'))
column2 = np.array((1332.9,-429.7,-6041.6,-686.5,-72.4,-37.5,-4224.6,-4208.8,-3955.8))
column3 = np.array((1332.9,42.7,-1018.7,-32.7,21.7,-327.2,-3117.4,-15431.5,206.2))
data1 = np.column_stack((column1,column2,column3))
data = pd.DataFrame(data1,columns=['Frucht','SUM19','SUM20'])
data['SUM19'] = pd.to_numeric(data['SUM19'])
data['SUM20'] = pd.to_numeric(data['SUM20'])

labels = data['Frucht']
x = np.arange(len(labels))  # the label locations
width = 0.35  # the width of the bars

fig,bax = plt.subplots()
rects1 = bax.bar(x - width/2, data['SUM19'], width, label='2019')
rects2 = bax.bar(x + width/2, data['SUM20'], width, label='2020')

bax.set_xticks(x)
bax.set_xticklabels(labels)

这是轴断裂图的代码(与上面的数据相同):

fig = plt.figure()
bax = brokenaxes(ylims=((-16000,-15000), (-6500, 1500)),hspace=.05)
rects1 = bax.bar(x - width/2, data['SUM19'], width, label='2019')
rects2 = bax.bar(x + width/2, data['SUM20'], width, label='2020')

bax.set_xticks(x)
bax.set_xticklabels(labels)

非常感谢你的帮助


Tags: the代码datalabelsnpbar标签width