Josh孙奕承 2023-02-26 19:08 采纳率: 91.7%
浏览 41
已结题

python横向柱状图问题

想做一个百分比占比图,所有数据都是float小数。不知道打标签同时把它们转换成百分比。
我做的图是这样的

img

表格和代码是这样的

img

plt.figure(figsize=(8,4),dpi=300)#定义画布
plt.barh(img_cost_structure['variable'],width=img_cost_structure['value'],height=0.4,error_kw = {'ecolor' : '0.2', 'capsize' :2},color='y',edgecolor='black')#画横向柱状图
plt.show()  

我想做成下面的样子

img

该怎么做?

  • 写回答

4条回答 默认 最新

  • 似水不惧 2023-02-26 20:11
    关注
    import matplotlib.pyplot as plt
    from matplotlib.ticker import FuncFormatter
    y_data = [ 10, 21, 13, 7, ]
    x_data = ('a', 'b', 'c', 'd')
    bar=plt.barh(x_data, y_data)
    def to_percent(temp, position):
      return '%1.0f'%(temp) + '%'
    #plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent))
    plt.gca().xaxis.set_major_formatter(FuncFormatter(to_percent))
    plt.bar_label(bar,fmt='%g%%')
    
    

    img


    希望有用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月6日
  • 已采纳回答 2月26日
  • 创建了问题 2月26日