python制作统计图(1)

注:如需所用表格数据,可在本人主页资源栏内直接下载

制作条形图

统计不同品牌上市电脑数量

新建方法

def bar_chart():

统计品牌个数

brands = {"联想": 0, "戴尔": 0, "华硕": 0, "惠普": 0, "HUAWEI": 0, "苹果": 0, "Acer": 0, "雷神": 0, "机械革命": 0, "技嘉": 0,
              "微软": 0, "ThinkPad": 0, "Alienware": 0, "机械师": 0, "ROG": 0, "荣耀": 0, "msi微星": 0, "Redmi": 0, "Razer": 0}
    for brand in brands:
        with open("笔记本信息.csv", "r") as messages:
            reader = csv.reader(messages)
            a = list(reader)
            # print(a)
            # print(len(a))
            for i in range(0, len(a) - 1):
                resp = a[i + 1][0]
                # print(resp)
                # match = re.compile(r'(.*?)(%s)(.*?)', brand)
                if brand in resp:
                    # print(resp+"中含有"+brand)
                    brands[brand] = brands.get(brand) + 1
            # 查看对应数量
            # print(brand+":"+str(brands.get(brand)))

作无序图

plt.figure(figsize=(18, 12), dpi=300)
    labels = brands.keys()
    values = brands.values()
    plt.bar(labels, values)
    plt.title("各品牌电脑型号数量条形图", fontdict={'fontsize': 40})
    plt.xlabel("品牌", fontdict={'fontsize': 25})
    plt.ylabel("数量", fontdict={'fontsize': 25})
    plt.savefig('各品牌电脑型号数量条形图(无序).png', dpi=300)
    plt.show()

要做有序的图,而bands为字典,无序

brands_order = sorted(brands.items(), key=lambda x: x[1])
    print(brands_order)

排序后为字典,不能用.keys()/.values()方法
labels = brands_order.keys()
values = brands_order.values()

用循环获取排序后的labels和values

labels = []
    for i in range(0, 18):
        labels.append(brands_order[i][0])
    values = []
    for i in range(0, 18):
        values.append(brands_order[i][1])

作有序图

plt.figure(figsize=(18, 12), dpi=300)
    plt.bar(labels, values)
    plt.title("各品牌电脑型号数量条形图", fontdict={'fontsize': 40})
    plt.xlabel("品牌", fontdict={'fontsize': 25})
    plt.ylabel("数量", fontdict={'fontsize': 25})
    plt.savefig('各品牌电脑型号数量条形图(有序).png', dpi=300)
    plt.show()

成品图

成品如下图所示在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值