我想用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()
您的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()