• 2023年 python结合excel实现快速画图(零基础快速入门)


    目录

    1.适用人群

    2.环境配置

    3.基本用法

    3.1 数据读取

     3.2 数据分析

    3.3 数据组装

    3.4 制表:

    4.快速提升

    5.效果展示


    1.适用人群

    电脑有python环境,会python基本使用,需要短时间内完成大量画图任务的数据分析的人群。(有过matplab相关画图库及echart用户使用起来会很快)

    2.环境配置

    pip install pandas jupyter-notebook pyecharts

    3.基本用法

    3.1 数据读取

    可以快速读入excel,选择你需要处理的Sheet1。这里请注意,不要有合并单元格。variable_types = data.dtypes查阅你需要处理的的数据类型。下面是样表:

    序号性别民族政治面貌出生年月中学名称考生类别毕业类别考试类别考生特征投档单位外语投档志愿
    1回族群众2004/8/9银川高级中学城镇往届普通高中毕业秋季统考统招英语1
    2汉族共青团员2004/3/10银川市第六中学城镇往届普通高中毕业秋季统考统招英语1

    打开jupyter notebook,运行数据分析代码

    1. import pandas as pd
    2. # 读取xlsx表格数据
    3. data = pd.read_excel("./录取名单汇总2100 .xls",sheet_name='Sheet1')
    4. # 分析数据的变量类型
    5. variable_types = data.dtypes
    6. variable_types

     简单看一下数据类型:

     3.2 数据分析

    1. objlist = []
    2. for id,i in enumerate(variable_types):
    3. # print(variable_types.index[id],variable_types.values[id])
    4. if(variable_types.values[id]=='object'):
    5. # print(variable_types.index[id])
    6. objlist.append(variable_types.index[id])
    7. dic_list = {}
    8. for col in objlist:
    9. col_data = data[col]
    10. unique_values = col_data.unique()
    11. if len(unique_values)<=100:
    12. dic_list[col] = unique_values
    13. print('属性',col,'\n=============')
    14. print(unique_values)
    15. print('=============')

    可以看看数据的基本类别  改一改可以看分布情况。现在你如果想查找某种数据的分布情况,就可以针对列进行数据处理及分析。

    3.3 数据组装

    这里的数据组装是对数据的预处理,将需要分析的列。比如我需要查看电气工程及其自动化专业的男女比例,数据构造过程如下:

    1. def get_tuple_list(df, column_name):
    2.     # 使用value_counts()函数进行分布统计
    3.     distribution = df[column_name].value_counts()
    4.     
    5.     # 转换为元组并组成列表
    6.     result_list = list(distribution.items())
    7.     
    8.     return result_list
    9. # 这句代码可能有些超纲,是pandas的df选择,不懂得同学补补对应的知识。
    10. df_dq = df[(df['专业'] == '电气工程及其自动化')]
    11. data_dq = get_tuple_list(df_dq,'性别')

    data_dq结果:

    3.4 制表:

    引入数据:

    1. from pyecharts import options as opts
    2. from pyecharts.charts import Bar
    3. from pyecharts.charts import Pie

    制作饼状图:

    1. # 准备数据
    2. data = data_dq
    3. # 创建Pie对象
    4. pie = (
    5.     Pie()
    6.     .add("", data)
    7. #     .set_colors(["blue", "white"])  # 设置颜色为蓝色和白色
    8.     .set_global_opts(title_opts=opts.TitleOpts(title="电气自动化男女比例分布"))
    9.     .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    10. )
    11. # 渲染生成HTML文件
    12. # pie.render("pie_chart.html")
    13. pie.render_notebook()

    样图:

    制作条形统计图:

    1. # 准备数据
    2. x_data = [ i[0] for i in data]
    3. y_data = [ i[1] for i in data]
    4. # 创建Bar对象
    5. bar = (
    6.     Bar()
    7.     .add_xaxis(x_data)
    8.     .add_yaxis(x_data, y_data)
    9.     .set_global_opts(title_opts=opts.TitleOpts(title="电气自动化男女比例分布"),
    10.                      xaxis_opts=opts.AxisOpts(
    11.             axislabel_opts={"interval":"0","rotate":90}),
    12.             )
    13. )
    14. # 渲染生成HTML文件
    15. # pie.render("pie_chart.html")
    16. pie.render_notebook()

    样图:

    4.快速提升

    根据Examples - Apache ECharts的网站选择你需要的图标,然后到GitHub - pyecharts/pyecharts-gallery: Just use pyecharts to imitate Echarts official example.

    搜索你需要的组件~

    比如:

    我需要这个bar表

    复制代码自己试一试,然后自己组装一下数据即可~

    5.效果展示

    对应代码:

    1. # 2100 的省份
    2. from pyecharts.charts import Map # 注意这里与老版本pyecharts调用的区别
    3. from pyecharts import options as opts
    4. import random
    5. # prov_city = ['银川市', '中卫市', '吴忠市', '石嘴山市','固原市']
    6. # data_prov_city = [(i, random.randint(100, 200)) for i in prov_city]
    7. data = [("银川市", 548), ("中卫市", 279),("吴忠市",340),("石嘴山市",89),("固原市",357)]
    8. maps = Map().add("",
    9. data,
    10. "宁夏").set_global_opts(
    11. title_opts=opts.TitleOpts(title="2023年录取新生各省分布"),
    12. visualmap_opts=opts.VisualMapOpts(
    13. min_=50,
    14. max_=600,
    15. is_piecewise=True
    16. )
    17. )
    18. maps.render("maps_chart.html")
    19. maps.render_notebook()

    这是根据实际需要制作的省份分布图,大家也可以根据自己的需要查阅最符合你需求的图表。

  • 相关阅读:
    【微信小程序】6天精准入门(第4天:自定义组件及案例界面)附源码
    Pytorch 最全入门介绍,Pytorch入门看这一篇就够了
    R语言中的数据结构----矩阵
    Java并发-操作系统,进程,线程,并行并发?
    Clickhouse分布式集群搭建
    嵌入式学习笔记(45) NandFlash的接口
    Spring Boot实战 | 如何整合高性能数据库连接池HikariCP
    基于ssm的微信小程序的短视频系统设计与实现-计算机毕业设计源码和LW文档
    macOS使用conda初体会
    SwiftUI AR教程之应用程序中使用 RealityKit 生成 3D 文本(教程含完整源码)
  • 原文地址:https://blog.csdn.net/QAQterrible/article/details/132947151