如何为我的数据创建条形图?

问题描述 投票:1回答:1

我想用pandas和matplotlib创建一个简单的双面条形图(每个X轴有两个条,如here)。

df = 
ID      Rank1   Rank2
243390  120.5   9.0
243810  37.5    10.0
253380  77.0    5.0
255330  29.0    8.0
256520  177.5   25.0

我能够创建一个带有两个条形的条形图,但情节不会出现。

fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111)
bar_width = 0.35
opacity = 0.8

rects1 = plt.bar(df["ID"], df["Rank1"], bar_width, 
                 alpha=opacity,
                 color='b',
                 label='Rank1')

rects2 = plt.bar(df["ID"] + bar_width, df["Rank2"], bar_width, 
                 alpha=opacity,
                 color='r',
                 label='Rank2')
plt.legend()
#plt.tight_layout()
plt.show() 
python pandas matplotlib
1个回答
1
投票

您的x轴刻度的bar_widths很小。试试这个:

fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111)
bar_width = 200
opacity = 0.8

rects1 = plt.bar(df["ID"]- bar_width/2, df["Rank1"], bar_width, 
                 alpha=opacity,
                 color='b',
                 label='Rank1')

rects2 = plt.bar(df["ID"] + bar_width/2, df["Rank2"], bar_width, 
                 alpha=opacity,
                 color='r',
                 label='Rank2')
plt.legend()
#plt.tight_layout()
plt.show() 

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.