zoukankan      html  css  js  c++  java
  • matplotlib绘制单个、多个、堆积、双向柱形图

    总结,主要是bar以及barh的用法,画堆叠图时还得注意一下数据类型,是都是可加,如果不是,就是要np.array转化,还有竖图和横图间隔的设置,width和height,最后,数据都是最后的结果,数据值个数不能太多,一般不超过10个,如果是连续性数据,请先处理,然后再画图

    一、单个柱形图

    #构造数据
    import pandas as pd 
    import numpy as np
    sabf = (27,53,81,103,138)
    sa = (29,57,89,113,141)
    ffd = (30,63,94,119,152)
    index = np.arange(5)
    import matplotlib.pyplot as plt

    单个直方图

    plt.bar(index,sabf,width=0.5,color='green')

     横向直方图

    plt.barh(index,sabf,color='green',height=0.5)

     记住,bar用width宽,barh用height

    二、多个柱形图

    bar_width=0.2
    plt.bar(index,sabf,color='green',width=bar_width)
    plt.bar(index+bar_width,sa,color='blue',width=bar_width)
    plt.bar(index+bar_width+bar_width,ffd,color='yellow',width=bar_width)
    plt.legend(('sabf','sa','ffd'))
    plt.xticks(index + 3 * bar_width / 3,('100', '200', '300', '400', '500'))

    三、堆积柱形图

    plt.bar(index,sabf,color='green',bottom=0)
    plt.bar(index,sa,color='blue',bottom=sabf)
    plt.bar(index,ffd,color='yellow',bottom=np.array(sabf)+np.array(sa))  #要注意这个是否可以广播,也即是说是否可加(数学上的可加),不然会报错
    plt.legend(('sabf','sa','ffd'))
    plt.xticks(index,('100', '200', '300', '400', '500'))

    四、双向柱形图

    plt.barh(index,sabf,color='green',height=0.5)
    plt.barh(index,-np.array(sa),color='yellow',height=0.5)
    plt.legend(('sabf','sa'))

  • 相关阅读:
    App分享微信小程序
    PHP-FFMpeg 操作视频/音频文件 (转)
    用户画像
    phpcms中的RBAC权限系统
    PHPExcel生成excel
    OPNET中节点模型中包流的索引号的含义
    删除opnet之前保存或打开的目录后每次打开总会提示warning
    opnet 的学习方法有感
    win10:两款轻量级美化软件使用技巧(StartlsBack++与RocketDock)
    任务栏透明
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/14097170.html
Copyright © 2011-2022 走看看