python可视化图表

1.测试数据准备

2011年1月销售数据.txt

bash 复制代码
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

bash 复制代码
{"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

python 复制代码
"""
数据定义的类
"""


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

python 复制代码
"""
和文件相关的定义类
"""

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

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

实现步骤:
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

相关推荐
databook9 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar10 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805110 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_10 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机17 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机18 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机18 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机18 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i18 小时前
drf初步梳理
python·django
每日AI新事件18 小时前
python的异步函数
python