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

2024-09-27 02:19:16 发布

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

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

Tags: alphaidpandasdfmatplotlibfigbarplt
1条回答
网友
1楼 · 发布于 2024-09-27 02:19:16

你的横条宽度对于你的x轴比例来说太小了。试试这个:

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

相关问题 更多 >

    热门问题