黑书包黑帽子 2023-02-10 19:33 采纳率: 100%
浏览 35
已结题

matplotlib柱形图画图小问题

#matpltlib堆叠柱形图问题

import matplotlib.pyplot as plt
plt.figure()

x = range(1, 90)
a =[32.48893, 66.335213, 61.010075, 43.615044, 30.0, 47.048744, 56.006947, 54.796486, 55.633141, 31.869307, 30.0,
      43.338078, 30.0, 30.0, 35.987534, 30.0, 30.0, 30.0, 30.0, 30.0, 20.0, 20.0, 20.0, 30.0, 30.0, 30.0, 30.0, 30.0,
      30.0, 30.0, 35.711754, 30.0, 30.0, 30.0, 35.391739, 3.367466, 30.710413, 30.0, 30.0, 30.0, 36.45649, 30.0, 30.0,
      30.0, 30.0, 30.0, 29.179741, 46.937462, 39.757786, 34.5856743, 30.3254433, 30.0, 32.6565285, 37.276352, 33.792843,
      30.0, 30.0, 30.0, 35.270195, 34.573338, 34.807304, 30.0, 30.0,
      30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.2616196, 30.931105, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0,
      30.0, 30.0, 30.0, 30.0, 30.0,  33.7542, 38.645329, 30.256792, 30.0]
b = [20.0, 24.546633, 25.635265, 21.700287, 20.0, 74.242142,
       66.942673, 57.671547, 67.6428549, 82.78205, 85.413986, 90.747169, 91.73587, 100.0, 100.0, 100.0, 100.0, 100.0,
       100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 95.523148, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
       100.0, 100.0, 100.0, 100.0, 100.0, 99.354309, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
       100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 96.534683, 100.0, 100.0, 100.0, 100.0, 100.0,
       100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
       97.34684, 94.393402, 82335678.0,61.29287, 52.813599, 35.591305, 39.1617813, 32.950611, 20.475721, 20.0]

rgbcolor = [(255 / 255, 159 / 255, 127 / 255), (50 / 255, 196 / 255, 233 / 255), (252 / 255, 114 / 255, 147 / 255)]
plt.bar(x, b, width=0.35, bottom=a, color=rgbcolor[1], label='b')
plt.bar(x, a, width=0.35, color=rgbcolor[0], label='a')
plt.show()

单独画a的柱形图显示,把b的数据堆叠在a之上,运行代码没有错误,但不显示了。请问这是为什么?

  • 写回答

2条回答 默认 最新

  • A1358722560 2023-02-10 20:02
    关注

    这是因为你的数据b有问题,可以进行以下修改:

    import matplotlib.pyplot as plt
    
    plt.figure()
    
    x = range(1, 90)
    a = [32.48893, 66.335213, 61.010075, 43.615044, 30.0, 47.048744, 56.006947, 54.796486, 55.633141, 31.869307, 30.0,
         43.338078, 30.0, 30.0, 35.987534, 30.0, 30.0, 30.0, 30.0, 30.0, 20.0, 20.0, 20.0, 30.0, 30.0, 30.0, 30.0, 30.0,
         30.0, 30.0, 35.711754, 30.0, 30.0, 30.0, 35.391739, 3.367466, 30.710413, 30.0, 30.0, 30.0, 36.45649, 30.0, 30.0,
         30.0, 30.0, 30.0, 29.179741, 46.937462, 39.757786, 34.5856743, 30.3254433, 30.0, 32.6565285, 37.276352, 33.792843,
         30.0, 30.0, 30.0, 35.270195, 34.573338, 34.807304, 30.0, 30.0,
         30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.2616196, 30.931105, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0,
         30.0, 30.0, 30.0, 30.0, 30.0, 33.7542, 38.645329, 30.256792, 30.0]
    b = [20.0, 24.546633, 25.635265, 21.700287, 20.0, 74.242142,
         66.942673, 57.671547, 67.6428549, 82.78205, 85.413986, 90.747169, 91.73587, 100.0, 100.0, 100.0, 100.0, 100.0,
         100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 95.523148, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
         100.0, 100.0, 100.0, 100.0, 100.0, 99.354309, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
         100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 96.534683, 100.0, 100.0, 100.0, 100.0, 100.0,
         100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
         97.34684, 94.393402, 82.3356780, 61.29287, 52.813599, 35.591305, 39.1617813, 32.950611, 20.475721, 20.0]
    
    rgb_color = [(255 / 255, 159 / 255, 127 / 255), (50 / 255, 196 / 255, 233 / 255), (252 / 255, 114 / 255, 147 / 255)]
    plt.bar(x, b, width=0.35, bottom=a, color=rgb_color[1], label='b')
    plt.bar(x, a, width=0.35, color=rgb_color[0], label='a')
    
    plt.show()
    
    
    

    运行结果为:

    img

    如果问题得到解决的话请点 采纳~~

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月10日
  • 已采纳回答 2月10日
  • 创建了问题 2月10日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示