python可视化图表

news2024/11/24 6:34:22

1.测试数据准备

2011年1月销售数据.txt

2011-01-01,4b34218c-9f37-4e66-b33e-327ecd5fb897,1689,湖南省
2011-01-01,5b6a6417-9a16-4243-9704-255719074bff,2353,河北省
2011-01-01,ae240260-68a9-4e59-b4c9-206be4c08a8d,2565,湖北省
2011-01-02,c833e851-880f-4e05-9de5-b547fsffc5e1,2877,山东省
2011-01-02,dd27e822-884c-4d20-a309-986f6a90e2b9,9476,安徽省
2011-01-03,b6882f5f-fb10-4210-9e45-288dd2239594,1363,广东省
2011-01-04,fd5056a8-8223-4d02-9988-04e1b41a57e8,2149,江苏省
2011-01-04,d022df35-3c0e-4753-bccb-37e125a5922b,1739,福建省
2011-01-04,a480686a-77ff-497e-9e32-0f6d9ba3eadd,2999,江苏省

2011年2月销售数据JSON.txt

{"date":"2011-02-02","order_id":"3dea6f83 a9b2-4197-ba9f-2b25704c530b","money":2547,"province":"广东省"}
{"date":"2011-02-03","order_id":"93cf7a56-3f90-4df9-af76-de7233c1dddb","money":1216,"province":"福建省"}
{"date":"2011-02-04","order_id":"0fbe1745-ac65-48f4-985b-b71875fcfbf7","money":2310,"province":"云南省"}

2.data_define.py

"""
数据定义的类
"""


class Recort:
    def __init__(self, date, order_id, money, province):
        self.date = date  # 订单日期
        self.order_id = order_id  # 订单id
        self.money = money  # 订单金额
        self.province = province  # 订单省份


    def __str__(self):
        return f"{self.date},{self.order_id},{self.money},{self.province}"


3. file_define.py

"""
和文件相关的定义类
"""

from data_define import Recort
import json


# 先定义一个抽象类,用来做顶层设计,确定有哪些功能需要实现
class FileReader:
    def read_data(self):
        "读取文件的数据,督导的每一条数据转换未Record对象,将它们都封装到list内返回即可"
        pass


class TextFilReader(FileReader):

    def __init__(self, path):
        self.path = path  # 定义成员变量记录文件的路径

    def read_data(self):
        f = open(self.path, 'r', encoding='utf-8')

        record_list = []
        for line in f.readlines():
            line = line.strip()  # 消除读取到的每一行数据中的\n
            data_list = line.split(',')

            record = Recort(data_list[0], data_list[1], int(data_list[2]), data_list[3])
            record_list.append(record)

        f.close()
        return record_list


class JosnFileReader(FileReader):

    def __init__(self, path):
        self.path = path

    def read_data(self):
        f = open(self.path, 'r', encoding='utf-8')

        record_list = []
        for line in f.readlines():
            data_dict = json.loads(line)

            record = Recort(data_dict['date'], data_dict['order_id'], int(data_dict['money']), data_dict['province'])
            record_list.append(record)

        f.close()

        return record_list


if __name__ == '__main__':
    text_file_reader = TextFilReader('./2011年1月销售数据.txt')
    json_file_reader = JosnFileReader('./2011年2月销售数据JSON.txt')

    list1 = text_file_reader.read_data()
    list2 = json_file_reader.read_data()

    for i in list1:
        print(i)

    for i in list2:
        print(i)




4. main.py

"""
面相对象,数据分析案例,主业务逻辑代码

实现步骤:
1. 设计一个类,可以完成数据的封装
2. 设计一个抽象类,定义文件读取的相关功能,病使用子类实现具体功能
3. 读取文件,生产数据对象
4. 进行数据的需求的逻辑计算(计算每一天的销售额)
5. 通过PyEcharts 进行图形的绘制
"""

from pyecharts.charts import Bar
from pyecharts.options import *

from file_define import TextFilReader, JosnFileReader

text_file_reader = TextFilReader("./2011年1月销售数据.txt")
json_file_reader = JosnFileReader("./2011年2月销售数据JSON.txt")

jan_data = text_file_reader.read_data()
feb_data = json_file_reader.read_data()

all_data = jan_data + feb_data

# 开始进行数据计算
data_dict = {}
for record in all_data:
    if record.date in data_dict.keys():
        data_dict[record.date] += record.money
    else:
        data_dict[record.date] = record.money

# 可视化图表开发
bar = Bar()

bar.add_xaxis(list(data_dict.keys()))  # 添加x轴的数据
bar.add_yaxis("销售额", list(data_dict.values()), label_opts=LabelOpts(is_show=False))  # 添加y轴数据
bar.set_global_opts(title_opts=TitleOpts(title='每日销售额'))
bar.render("每日销售额柱状图.html")

5.html展示

在这里插入图片描述

学习链接

【黑马程序员python教程,8天python从入门到精通,学python看这套就够了】https://www.bilibili.com/video/BV1qW4y1a7fU?p=126&vd_source=2d34fd2352ae451c4f6d4cb20707e169

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1634964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第6篇:创建Nios II工程之控制LED<一>

Q:还记得第1篇吗?设计简单的逻辑电路,控制DE2-115开发板上LED的亮与熄灭,一行Verilog HDL的assign赋值语句即可实现。本期开始创建Nios II工程,用C语言代码控制DE2-115开发板上的LED实现流水灯效果。 A:在…

力扣141.环形链表142.环形链表Ⅱ 附证明

题目链接: 141. 环形链表 - 力扣(LeetCode) 142. 环形链表 II - 力扣(LeetCode) 141.环形链表 方法思路:快慢指针 代码: class Solution { public:bool hasCycle(ListNode *head) {if(!head){return fa…

基于uniapp vue3.0 uView 做一个点单页面(包括加入购物车动画和左右联动)

1、实现效果&#xff1a; 下拉有自定义组件&#xff08;商品卡片、进步器、侧边栏等&#xff09;源码 2、左右联动功能 使用scroll-view来做右边的菜单页&#xff0c;title的id动态绑定充当锚点 <scroll-view :scroll-into-view"toView" scroll-with-animation…

vue+element之解决upload组件上传文件失败后仍显示在列表上、自动上传、过滤、findIndex、splice、filter

MENU 前言错误案例(没有用)正确方法结束语 前言 el-upload上传失败后&#xff0c;文件仍显示在列表上。 这个pdf文件上传失败&#xff0c;仍显示在列表&#xff0c;给人错觉是上传成功&#xff0c;所以要把它去掉。 在element中&#xff0c;file-list和v-model:file-list是用于…

Codigger数据篇(中):数据可控性的灵活配置

在数据服务领域中&#xff0c;数据可控性无疑是至关重要的一环。数据可控性不仅关乎数据的安全性和隐私性&#xff0c;更直接影响到数据价值的实现。Codigger&#xff0c;在其数据可控性方面的灵活配置&#xff0c;为用户提供了更加便捷、高效的数据管理体验。 一、自主选择数…

拌合楼管理系统(十八)如何从一个winForm中的事件修改另外一个Form的控件的值

前言&#xff1a; 上篇讲述了如何手工调用海康的车牌识别摄像头进行拍照和识别车牌&#xff0c;我车牌识别的程序在应用的一个窗体&#xff0c;需要去更新另外一个窗体里面的lable中的内容为识别的车牌信息&#xff0c;同时还要写入到另外窗体的datagridview中。 一、实现效果 …

以23年电赛吉林赛区为例,如何避免冤假错案?再谈无人机赛题中不让使用机载计算机的问题!!!

有同学反馈吉林赛区在无人机赛题中使用树莓派后不被允许测评&#xff0c;由于缺少同省样本支撑&#xff0c;并且吉林省G题无人机获得国奖仅有一组&#xff0c;所以仅根据特定情况做回复&#xff0c;不代表任何组委会立场&#xff0c;因为按照该用户表述&#xff0c;自己没有任何…

【HTTP协议】了解http需要学习哪些内容

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是超文本传输协议&#xff0c;互联网上应用最广泛的一种协议&#xff0c;它负责在客户端和服务器之间传输数据。本文将从HTTP协议的基本原理、请求-响应模型、常见特性以及应用场景等方面进行总结。 1. HTTP基本原理 …

【云原生】Docker 实践(一):在 Docker 中部署第一个应用

Docker 实践&#xff08;一&#xff09;&#xff1a;在 Docker 中部署第一个应用 1.使用 YUM 方式安装 Docker2.验证 Docker 环境3.在 Docker 中部署第一个应用3.1 小插曲&#xff1a;docker pull 报 missing signature key 错误3.2 重新安装 Nginx 1.使用 YUM 方式安装 Docker…

极目楚天 共襄星汉 | 同元软控受邀参加2024年中国航天大会

4月23日至26日&#xff0c;2024 年中国航天大会&#xff08;CSC2024&#xff09;在湖北省武汉市成功举办。大会由中国宇航学会和中国航天基金会联合主办&#xff0c;以“极目楚天 共襄星汉”为主题&#xff0c;汇聚国内外航天领域知名专家、学者、管理者&#xff0c;深入探讨航…

数字IC后端先进工艺设计实现之TSMC 12nm 6Track工艺数字IC后端实现重点难点盘点

大家知道咱们社区近期TSMC 12nm ARM Cortexa-A72(1P9M 6Track Metal Stack)已经开班。这里小编要强调一点:不要认为跑了先进工艺的项目就会很有竞争力&#xff01;如果你仅仅是跑个先进工艺的flow&#xff0c;不懂先进工艺在数字IC后端实现上的不同点&#xff0c;为何有这样的不…

2024年十款开源测试开发工具推荐(自动化、性能、混沌测试、造数据、流量复制)

今天为大家奉献一篇测试开发工具集锦干货。在本篇文章中&#xff0c;将给大家推荐10款日常工作中经常用到的测试开发工具神器&#xff0c;涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。 1、AutoMeter-API 自动化测试平台 AutoMeter 是一款针对分布式服务&…

MT3420B 航天民芯代理 1.5MHZ 2A 同步降压转换器 6V输入

深圳市润泽芯电子有限公司为航天民芯一级代理技术支持 欢迎试样~Tel&#xff1a;18028786817 简介 MT3420B是一个1.5MHz恒定频率&#xff0c;电流模式降压转换器。它是理想的便携式设备&#xff0c;需要非常大电流的单电池锂离子电池&#xff0c;同时在峰值负载条件下仍达到超…

HR是“打手”?

在刚过去的上海公开课上&#xff0c;有一位学员在课间问了我个问题&#xff0c;他说“感觉HR更像是个打手&#xff0c;不知李老师怎么看&#xff1f;”基于我在现场与他交流的内容&#xff0c;我总结成这篇文章吧。 这位学员的问题&#xff0c;表他了他对HR这个岗位的负面感受…

机器学习每周挑战——客户流失数据预测

# 字段 说明 # RowNumber 每行数据的唯一标识符。 # CustomerId 客户的唯一标识符。 # Surname 客户的姓氏&#xff08;出于隐私考虑&#xff0c;请对这些数据进行匿名处理&#xff09;。 # CreditScore 客户在数据收集时的信用评分。 # Geography 客户所在的国…

文件分块+断点续传 实现大文件上传全栈解决方案(前端+nodejs)

1. 文件分块 将大文件切分成较小的片段&#xff08;通常称为分片或块&#xff09;&#xff0c;然后逐个上传这些分片。这种方法可以提高上传的稳定性&#xff0c;因为如果某个分片上传失败&#xff0c;只需要重新上传该分片而不需要重新上传整个文件。同时&#xff0c;分片上传…

React的路由

1. 什么是前端路由 一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候&#xff0c;path 对应的组件会在页面中进行渲染 2. 创建路由开发环境 # 使用CRA创建项目 npm create-react-app react-router-pro# 安装最新的ReactRouter包 npm i react-ro…

AI图书推荐:将 ChatGPT和Excel融合倍增工作效率

《将 ChatGPT和Excel融合倍增工作效率》&#xff08; Hands-on ChatGPT in Excel. Enhance Your Excel Workbooks&#xff09;由Mitja Martini撰写&#xff0c;旨在教授读者如何将ChatGPT与Excel结合使用&#xff0c;以提升工作效率和创造AI增强的Excel工具。它还提供了Excel中…

「中标喜报」合众致达中标深圳安居乐寓智能水电表供货及安装项目

2024年4月25日&#xff0c;深圳合众致达科技有限公司(以下简称“我司”)成功中标安居乐寓2023盐田区保障性租赁住房改造提升项目的水电表供货与安装工程(二次)项目&#xff0c;此次中标标志着我司在城中村公寓出租房能源计费领域的专业实力及市场竞争力得到了进一步的认可。 我…

uniapp视频播放器(h5+app)

关于uniapp视频播放器遇到的一些问题&#xff0c;mark下。 中途遇到了很多问题&#xff0c;如果有相同的伙伴遇到了类似的&#xff0c;欢迎交流 官方的video播放器在app上不友好&#xff0c;有以下功能不支持。 loadedmetadata、controlstoggle不支持导致只能手写控制层。 不…