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()
  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/wt7018/p/11946386.html
Copyright © 2011-2022 走看看