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

2023-09-17 18:24:53

目录

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,运行数据分析代码

import pandas as pd

# 读取xlsx表格数据
data = pd.read_excel("./录取名单汇总2100 .xls",sheet_name='Sheet1')

# 分析数据的变量类型
variable_types = data.dtypes
variable_types

 简单看一下数据类型:

 3.2 数据分析

objlist = []

for id,i in enumerate(variable_types):
    # print(variable_types.index[id],variable_types.values[id])
    if(variable_types.values[id]=='object'):
        # print(variable_types.index[id])
        objlist.append(variable_types.index[id])


dic_list = {}
for col in objlist:
    col_data = data[col]
    unique_values = col_data.unique()
    if len(unique_values)<=100:
        dic_list[col] = unique_values
        print('属性',col,'\n=============')
        print(unique_values)
        print('=============')

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

3.3 数据组装

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

def get_tuple_list(df, column_name):
    # 使用value_counts()函数进行分布统计
    distribution = df[column_name].value_counts()
    
    # 转换为元组并组成列表
    result_list = list(distribution.items())
    
    return result_list

# 这句代码可能有些超纲,是pandas的df选择,不懂得同学补补对应的知识。
df_dq = df[(df['专业'] == '电气工程及其自动化')]

data_dq = get_tuple_list(df_dq,'性别')

data_dq结果:

3.4 制表:

引入数据:

from pyecharts import options as opts

from pyecharts.charts import Bar

from pyecharts.charts import Pie

制作饼状图:

# 准备数据

data = data_dq

# 创建Pie对象

pie = (

    Pie()

    .add("", data)

#     .set_colors(["blue", "white"])  # 设置颜色为蓝色和白色

    .set_global_opts(title_opts=opts.TitleOpts(title="电气自动化男女比例分布"))

    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))

)

# 渲染生成HTML文件

# pie.render("pie_chart.html")

pie.render_notebook()

样图:

制作条形统计图:

# 准备数据

x_data = [ i[0] for i in data]

y_data = [ i[1] for i in data]

# 创建Bar对象

bar = (

    Bar()

    .add_xaxis(x_data)

    .add_yaxis(x_data, y_data)

    .set_global_opts(title_opts=opts.TitleOpts(title="电气自动化男女比例分布"),

                     xaxis_opts=opts.AxisOpts(

            axislabel_opts={"interval":"0","rotate":90}),

            )

)

# 渲染生成HTML文件

# pie.render("pie_chart.html")

pie.render_notebook()

样图:

4.快速提升

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

搜索你需要的组件~

比如:

我需要这个bar表

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

5.效果展示

对应代码:

# 2100 的省份
from pyecharts.charts import Map  # 注意这里与老版本pyecharts调用的区别
from pyecharts import options as opts
import random

# prov_city = ['银川市', '中卫市', '吴忠市', '石嘴山市','固原市']
# data_prov_city = [(i, random.randint(100, 200)) for i in prov_city]

data = [("银川市", 548), ("中卫市", 279),("吴忠市",340),("石嘴山市",89),("固原市",357)]
maps = Map().add("",
         data,
         "宁夏").set_global_opts(
        title_opts=opts.TitleOpts(title="2023年录取新生各省分布"),
        visualmap_opts=opts.VisualMapOpts(
            min_=50,
            max_=600,
            is_piecewise=True
        )
    )
maps.render("maps_chart.html")
maps.render_notebook()

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

更多推荐

小型水库雨水情测报和大坝安全监测解决方案

一、建设背景我国小型水库数量众多,大多由农村集体经济组织管理,灌溉、供水、防洪、生态效益突出,是农业生产、农民生活、农村发展和区域防洪的重要基础设施,实施乡村振兴战略和生态文明建设的重要支撑保障。由于小型水库工程存在先天不足等问题,缺陷较多。2021年10月19日,水利部正式印发《小型水库雨水情测报和大坝安全监测设施建

Linux中使用selenium截图的文字变为方框的解决方案

一、前言最近在Linux中使用selenium截图时,发现文字都变为了方框:虽然不影响selenium的使用,但有点影响调试,也不好看,后面发现是因为Linux缺少中文字体的缘故,需要安装中文字体就能解决。二、安装中文字体(以centos为例)1)前置检查先检查/usr/share目录下是否有有fonts和fontco

[2023.09.21]:源码已上传,供大家了解Rust Yew的前后端开发

这个资源是Rust的源代码压缩包,供大家了解RustYew的前后端开发。资源中的代码非常简洁易懂,虽然离商用场景还有一段距离,但是涵盖了前端的组件搭建、事件通信和反向代理,以及后端的RestfulAPI的路由、功能实现和数据库访问。此外,还包括了postgres数据库的初始化脚本和docker部署脚本,方便您快速搭建环

前端版本更新提示

前端版本更新提示前言:最近项目发布比较频繁、导致每次都要主动告知用户/测试去刷新清除页面缓存、从而防止发了新功能之后、用户因为没有刷新页面/清除缓存,一直使用的还是旧版本。所以就着手写一个检测到发布了新版本就自动提醒用户去刷新页面的功能。一、思路:我们可以通过每次打包构建(npmrunbuild)之后给包打一个唯一标识

企业为什么做数字化转型?

数字化转型是一个战略性的、势在必行的过程,企业利用技术和数字工具从根本上改变其运营方式,为客户提供价值,并在现代商业环境中保持竞争力。企业踏上数字化转型之旅有几个令人信服的理由:1.提高效率和生产力:数字工具和自动化可以简化流程、减少手动工作并提高整体运营效率。这使得组织能够用更少的资源做更多的事情并更有效地分配资源。

进程同步与互斥

目录进程同步与互斥(1)第一节、进程间相互作用一、相关进程和无关进程二、与时间有关的错误第二节、进程同步与互斥一、进程的同步二、进程的互斥三、临界区进程同步与互斥(2)三、信号量与P、V操作的物理含义四、用P、V操作实现进程间的互斥五、用P、V操作实现进程间的同步六、信号量及P、V操作总结进程同步与互斥(3)第四节经典

MyBatis基础之动态SQL

文章目录动态SQLif元素choose-when-otherwise元素where元素set元素foreach元素动态SQL简而言之,动态SQL就是在Mapper中使用分支、循环等逻辑。常见的动态SQL元素包括:if元素choose-when-otherwise元素where元素set元素foreach元素if元素<i

第二章 物理层

引言如果这篇文章对您有帮助的话,希望您能点赞、收藏、加关注!您的鼓励就是我前进的动力!本文所参考的教材为:谢希仁.计算机网络.北京:电子工业出版社,2021.重要知识点总结三种通信方式:单向通信、双向交替通信、双向同时通信。两大类调制:基带调制(编码),带通调制。常用的四种编码方式:不归零制、归零制、曼彻斯特编码、差分

Jenkins :添加node权限获取凭据、执行命令

拥有Jenkinsagent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。1.Jenkins添加node获取明文凭据通过添加node节点,本地监听ssh认证,选则凭据(明文)进行ssh认证,拿到密码。1.新建节点-man

在 Vue3 项目中如何关闭 ESLint

介绍ESLint是一个用于检查JavaScript代码质量的工具,它可以帮助开发者遵循一致的编码规范,并发现潜在的错误和问题。然而,在某些情况下,我们可能希望关闭ESLint,例如在一些小型项目中或者在特定的开发阶段。本文将介绍如何在Vue3项目中关闭ESLint。步骤第一步:找到配置文件在Vue3项目中,ESLint

Android Studio导入aosp源码

1、在Ubuntu系统下,进入源码根目录,运行如下命令:sourcebuild/envsetup.sh#初始化环境变量。lunchsdk_phone_x86_64makeidegen-j6#六核编译idegen模块忽略此命令:mmmdevelopment/tools/idegen/#此命令可以不执行(同makeideg

热文推荐