Miss.Summer 2022-09-29 23:35 采纳率: 50%
浏览 39
已结题

关于python里hist图的问题,如何解决?

为什么生成的hist图没有按照数值排序生成,以及出现了复数的灰标?

# Integration of dataframes 
laps_result = pd.DataFrame()

# get tables from webs
for laps_web in fastest_laps_list:
    source = urllib.request.urlopen(laps_web)
    soup = bs.BeautifulSoup(source,'lxml')
    table = soup.find_all('table')[0]
    data = pd.read_html(str(table), flavor='bs4', header=[0])[0]
    laps_result = pd.concat([data_laps_result,data]).round(2)
    laps_result.drop(["Race","Unnamed: 0","Unnamed: 9"],axis=1,inplace=True)

laps_result

img

# Figure Size
fig, ax = plt.subplots(figsize =(16, 9))
 
# Horizontal Bar Plot
ax.barh(laps_result.sort_values(by='Avg Speed',ascending=True)['Driver'],
       laps_result.sort_values(by='Avg Speed',ascending=True)['Avg Speed'])

 
# Add x, y gridlines
ax.grid(visible = True, color ='grey',
        linestyle ='-.', linewidth = 0.5,
        alpha = 0.2)
 
# Show top values
ax.invert_yaxis()

# Add annotation to bars
for i in ax.patches:
    plt.text(i.get_width()+0.2, i.get_y()+0.5,
             str(round((i.get_width()), 2)),
             fontsize = 10, fontweight ='bold',
             color ='grey')
 
# Add Plot Title

plt.ylabel('Driver',fontsize = 15)
plt.xlabel('Average Speed',fontsize = 15)
plt.title('Average Speed of Drivers',fontsize =18)
 
# Show Plot
plt.savefig('3_average speed of drivers.jpg',dpi = 200, bbox_inches = 'tight')

img

我希望能够让数值以avg speed的大小顺序排列,并且在尾端出现top value。但为什么sort_value没有实现排序,以及出现了大量的灰色数值小字?

我原本想达成的效果是下面这样的图,我前后比照了下代码似乎没有差别,不知道为什么生成出来的图却不一样。

img

  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 10月7日
      • 创建了问题 9月29日

      悬赏问题

      • ¥15 Java的运用111111111111
      • ¥15 koa2 + ts 声明文件不生效
      • ¥15 Mac系统word显示此文档已被删除或当前无法访问.
      • ¥15 Unity用代码实现Tilemap
      • ¥15 怎么求广播地址以及网络地址?
      • ¥15 想知道unity如何实现物体贴地运动
      • ¥15 从A地到B地有多条路径可以到达,现要从A地到B地运物资问题
      • ¥30 用java设计小游戏扑克牌比大小,52张牌的图片选世界篮球明星图或其它都行
      • ¥15 ATM管理员功能代码及解释
      • ¥15 EasyExcel导出下载文件响应流为空