zoukankan      html  css  js  c++  java
  • matplotlib 条形图

    一、特点

    离散数据,数据之间没有直接的关系

    二、分类

    1、垂直条形图

    bar(x, height, width=0.8)
    # x 为x轴
    # height 为y轴
    # width 为 条形图的宽度

    例子

    from matplotlib import pyplot as plt
    from matplotlib import font_manager
    a = ["战狼2", "熟读与激情8", "功夫瑜伽", "西游伏妖篇", "变形金刚5:
     最后的骑士", "摔跤吧!爸爸", "加勒比海盗5:
     死无对证",
         "金刚: 骷髅岛", "极限特工:
     终极回归", "生化危机6:
     终章", "乘风波浪", "神偷奶爸3", "智取威虎山", "大闹天竺", "金刚狼3:
     殊死一战",
         "蜘蛛侠:
     英雄归来", "悟空转", "银河护卫队2", "情圣", "新木乃伊"]
    
    b = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88,
         6.86, 6.58, 6.23]
    
    # 设置中文显示
    my_font = font_manager.FontProperties(fname="C:WindowsFontsmsjh.ttc")
    # 设置图形大小
    plt.figure(figsize=(20, 10), dpi=80)
    
    # 绘图
    x = range(len(a))
    plt.bar(x, b, width=0.4, color="#FF00FF")
    # 设置x轴刻度和label
    plt.xticks(x, a, fontproperties=my_font, rotation=45)
    plt.grid(alpha=0.4)
    # 添加描述
    plt.xlabel("电影", fontproperties=my_font)
    plt.ylabel("票房 单位(亿)", fontproperties=my_font)
    plt.title("2017年票房前20", fontproperties=my_font)
    # 保存图片
    plt.savefig("./movie.png")
    plt.show()

    2、水平条形图

    barh(y, width, height=0.8)
    # y是y轴
    # width是x轴
    # height是条形图的宽度

    例子

    from matplotlib import pyplot as plt
    from matplotlib import font_manager
    
    a = ["战狼2", "熟读与激情8", "功夫瑜伽", "西游伏妖篇", "变形金刚5: 最后的骑士", "摔跤吧!爸爸", "加勒比海盗5: 死无对证",
         "金刚: 骷髅岛", "极限特工: 终极回归", "生化危机6: 终章", "乘风波浪", "神偷奶爸3", "智取威虎山", "大闹天竺", "金刚狼3: 殊死一战",
         "蜘蛛侠: 英雄归来", "悟空转", "银河护卫队2", "情圣", "新木乃伊"]
    b = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88, 6.86, 6.58, 6.23]
    
    # 设置中文显示
    my_font = font_manager.FontProperties(fname="C:WindowsFontsmsjh.ttc")
    # 设置图形大小
    plt.figure(figsize=(20, 10), dpi=80)
    
    # 绘图
    y = range(len(a))
    plt.barh(y, b, height=0.4, color="#FF00FF")
    # 设置y轴的刻度和label
    plt.yticks(y, a, fontproperties=my_font)
    # 添加描述
    plt.xlabel("票房 单位(亿)", fontproperties=my_font)
    plt.ylabel("电影", fontproperties=my_font)
    plt.title("2017年票房前20", fontproperties=my_font)
    # 添加网格
    plt.grid(alpha=0.4)
    plt.show()

    三、多个条形图

    from matplotlib import pyplot as plt
    from matplotlib import font_manager
    
    a = ["猩球崛起: 终极之战", "敦刻尔克", "蜘蛛侠: 英雄归来", "战狼2"]
    b_16 = [15746, 312, 4497, 319]
    b_15 = [12357, 156, 2045, 168]
    b_14 = [2358, 399, 2358, 262]
    
    my_font = font_manager.FontProperties(fname="C:WindowsFontsmsjh.ttc")
    
    bar_width = 0.2
    # 设置图形大小
    plt.figure(figsize=(20, 8), dpi=80)
    # 绘图
    x_14 = range(len(a))
    x_15 = [i + bar_width for i in range(len(a))]
    x_16 = [i + 2 * bar_width for i in range(len(a))]
    plt.bar(x_14, b_14, width=bar_width, label="14号票房")
    plt.bar(x_15, b_15, width=bar_width, label="15号票房")
    plt.bar(x_16, b_16, width=bar_width, label="16号票房")
    
    # 设置x轴刻度
    plt.xticks(x_15, a, fontproperties=my_font)
    
    # 添加描述
    plt.xlabel("电影", fontproperties=my_font)
    plt.ylabel("票房", fontproperties=my_font)
    plt.title("3天票房比较", fontproperties=my_font)
    
    # 添加图例
    plt.legend(prop=my_font)
    # 展示图片
    plt.show()
  • 相关阅读:
    #1045
    PHP程序员的技术成长规划
    403 Forbidden
    读《暗时间》的思考
    常用判断重复记录的SQL语句
    PHP中生产不重复随机数的方法
    echo 1+2+"3+4+5“输出的结果是6
    GET vs. POST
    详解PHP中的过滤器(Filter)
    Session变量在PHP中的使用
  • 原文地址:https://www.cnblogs.com/wt7018/p/11946386.html
Copyright © 2011-2022 走看看