数据可视化实验四:Pyecharts数据可视化

目录

一、使用PyEcharts绘制全国肺炎确诊人数分布图

1.1 柱状图

1.1.2 代码实现

1.1.2 绘制结果

1.2 饼状图

1.2.1 代码实现

1.2.2 绘制结果

1.3 使用over lap实现图形叠加

1.3.1 代码实现

1.3.2 绘制结果

1.4 地图绘制-Map

1.4.1 代码实现

1.4.2 绘制结果

1.5 地图显示-Geo

1.5.1 代码实现

二、使用pyecharts绘制词云图

2.1 代码实现

2.2 绘制结果


一、使用PyEcharts绘制全国肺炎确诊人数分布图

数据集描述:省份人数.csv

省份

人数

广东

54

北京

87

上海

223

新疆

34

安徽

5

陕西

6

湖南

24

浙江

2

江苏

12

1.1 柱状图

1.1.2 代码实现

# 导入库
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot# 读取 CSV 文件
data = pd.read_csv("省份人数.csv")# 将数据转换为字典格式
province = data["省份"].tolist()
confirmed = data["人数"].tolist()
# 进行zip包装
data_dict = dict(zip(province, confirmed))
# 使用 Bar 绘制柱状图
bar = (Bar().add_xaxis(province).add_yaxis("确诊人数", confirmed).set_global_opts(title_opts=opts.TitleOpts(title="全国各地区肺炎确诊人数分布"),# 显示x,y坐标名称xaxis_opts=opts.AxisOpts(name="省份", axislabel_opts=opts.LabelOpts(rotate=-45)),yaxis_opts=opts.AxisOpts(name="确诊人数"),)
)# 显示结果
make_snapshot(snapshot, bar.render(), "全国各地区确诊人数.png")

1.1.2 绘制结果

1.2 饼状图

1.2.1 代码实现

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot as driver# 读取CSV文件
data = pd.read_csv("省份人数.csv")# 提取省份和人数数据
provinces = data["省份"].tolist()
numbers = data["人数"].tolist()# 绘制饼状图
pie = (Pie().add(series_name="肺炎确诊人数分布",data_pair=[list(z) for z in zip(provinces, numbers)],radius=["30%", "75%"],).set_global_opts(title_opts=opts.TitleOpts(title="全国各地区肺炎确诊人数分布饼状图"),legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)# 使用 make_snapshot 方法将图表直接保存为图片
make_snapshot(driver, pie, "全国各地区肺炎确诊人数分布饼状图.png")

1.2.2 绘制结果

注:将不同省份设置为不同的颜色,以便于区分;结果也可以以html文件的形式输出,本次实验我选择了输出图片为结果。

1.3 使用over lap实现图形叠加

1.3.1 代码实现

# 导入绘图库
from pyecharts.charts import Bar, Line
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot as driver
import pandas as pd# 读取 CSV 文件
data = pd.read_csv('省份人数.csv')# 提取省份和人数数据
provinces = data['省份'].tolist()
numbers = data['人数'].tolist()# 绘制条形图
bar = (Bar().add_xaxis(provinces)# 同时将颜色调为.add_yaxis("确诊人数", numbers, color="red").set_global_opts(title_opts=opts.TitleOpts(title="全国各地区肺炎确诊人数分布"))
)# 绘制折线图
line = (Line().add_xaxis(provinces).add_yaxis("确诊人数", numbers, symbol="emptyCircle", is_symbol_show=True,itemstyle_opts=opts.ItemStyleOpts(color="blue"))  # 设置线条颜色为蓝色
)
# 将条形图和折线图叠加在一起
overlap = bar.overlap(line)
# 使用 make_snapshot 生成图片
make_snapshot(driver,  "全国肺炎确诊人数分布.png")

1.3.2 绘制结果

注:将条形图颜色调整为红色、折线图的颜色调整为蓝色,便于区分

1.4 地图绘制-Map

1.4.1 代码实现

# 导入库
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot as driver
# 读取CSV文件
data = pd.read_csv("省份人数.csv")# 过滤出确诊人数大于零的省份
filtered_data = data[data["人数"] > 0]# 提取省份和确诊人数
provinces = filtered_data["省份"].tolist()
numbers = filtered_data["人数"].tolist()# 组装数据为列表套元组的形式,同时过滤没有确诊人数的省份
data_pairs = [(provinces[i], numbers[i]) for i in range(len(provinces)) if numbers[i] > 0]# 使用 Pyecharts 绘制地图
map_chart = (Map().add("确诊人数", data_pairs, "china").set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter=None))  # 直接显示省份名称和人数,而不需要悬停时显示.set_global_opts(title_opts=opts.TitleOpts(title="全国各地区肺炎确诊人数分布地图"),visualmap_opts=opts.VisualMapOpts(max_=max(numbers)),)
)# 使用 make_snapshot 方法将图表直接保存为图片
make_snapshot(driver, map_chart.render(), "全国各地区肺炎确诊人数分布地图Map.png")

1.4.2 绘制结果

注:原数据集中的省份名称末尾都没有加上“省”或自治区等字,导致最开始无法显示出人数。后续将数据集进行调整。

(调整前的输出结果)

调整后:

1.5 地图显示-Geo

1.5.1 代码实现

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Geo# 读取CSV文件
df = pd.read_csv("省份人数.csv", encoding="utf-8")# 提取省份和人数数据
provinces = df["省份"].tolist()
numbers = df["人数"].tolist()# 构造地图数据
map_data = [(provinces[i], numbers[i]) for i in range(len(provinces))]# 绘制地图
geo = (Geo().add_schema(maptype="china").add("确诊人数",map_data,type_= "scatter",).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=max(numbers)),title_opts=opts.TitleOpts(title="全国各地区肺炎确诊人数分布地图"),)
)# 生成html文件
geo.render("全国肺炎确诊人数分布地图geo.html")

1.5.2 绘制结果

二、使用pyecharts绘制词云图

数据集描述:词云.txt

光调制解调器由发送、接收、控制、接口及电源等部分组成。数据终端设备以二进制串行信号形式提供发送的数据,经接口转换为内部逻辑电平送入发送部分,经调制电路调制成线路要求的信号向线路发送。接收部分接收来自线路的信号,经滤波、反调制、电平转换后还原成数字信号送入数字终端设备。类似于电通信中对高频载波的调制与解调,光调制解调器可以对光信号进行调制与解调。不管是模拟系统还是数字系统,输入到光发射机带有信息的电信号,都通过调制转换为光信号。光载波经过光纤线路传输到接收端,再由接收机通过解调把光信号转换为电信号。
光调制器是由微波封装的高频DFB激光二极管与APC、ATC控制电路组成E/O转换部件,利用射频微波信号直接调制超高频激光二极管产生强度调制光信号,再耦合到单模光纤中,经约5km光纤传输后,再由光解调器接收完成O/E转换,光解调器是由高速跨阻放大器的PD组件与宽带低噪声放大器组成。该转换必须保证高线性、低失真传输,因此,要通过减小射频输入功率,增加放大器增益而完成。设计的重点在于器件的微波封装,阻抗匹配,对器件等效电路进行模拟,设计出合理共平面微带线电路,用CAD优化最终达到行波与复数共轭匹配,还要解决系统中高增益前置放大以及减小三阶交调等技术问题。

2.1 代码实现

# -*- coding: utf-8 -*-
from pyecharts import options as opts
from pyecharts.charts import WordCloud# 从文件中读取数据
with open("词云.txt", "r", encoding="utf-8") as file:text=file.read()# 绘制词云图
wordcloud = (WordCloud().add("", [(word, text.count(word)) for word in set(text.split())], word_size_range=[20, 100]).set_global_opts(title_opts=opts.TitleOpts(title="光调制解调器词云图"))
)# 生成图片
wordcloud.render("wordcloud.png")
# 保存词云图
wordcloud.render("wordcloud.html")

2.2 绘制结果

结尾语

“樱花落下后,松了一口气。”不必再患得患失了。——— 《门里梦外》

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

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

相关文章

培训兼职导师可靠吗?

培训兼职导师有真有假。在现实中,确实存在正规的培训兼职导师的机会,这些通常是由正规的教育机构或企业提供的,旨在帮助有教育热情和专业知识的人成为合格的兼职导师。然而,也有许多骗局打着“培训兼职导师”的幌子,骗…

51学习记录(一)——51介绍及震动感应灯

文章目录 前言一、STC89C522.内部结构及引脚 二、继电器原理及震动传感器原理三、项目搭建及实现 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出 提示:以下是本篇文章正文内容,下面案例可供参考 一、STC89C52 1.简介 所属系列:51单…

功率电源中器件的温升与极限工作温度

功率电源中器件的温升与极限工作温度 熟悉电子电路设计的朋友一定都知道,在电源整体设计中存在一些发热非常严重的器件,如整流桥、MOS管、快恢复二极管这些器件。而在功率电源中,电感和高频变压器则成为了发热现象的重灾区。那么在功率电源中,它们的合理温升应该是多少,在…

计算机网络 VLAN间路由单臂路由

一、理论知识 VLAN是一种将物理网络划分成多个逻辑网络的方法。不同的VLAN属于不同的网段,因此互相通信需要通过路由器进行路由。通常情况下,在同一VLAN内的设备可以直接通信,而不同VLAN之间的设备则需要通过路由器转发数据。本实验利用单臂…

为什么配置Java环境后会出现SSL问题?

在配置Java 8环境后出现SSL证书问题,可能是由于Java 8中高版本禁用了一些旧版SSL/TLS协议,这些协议被认为存在安全漏洞。例如,Java 8从1.8.0_181版本开始禁用了SSLv3、TLSv1和TLSv1.1协议。如果您的应用程序或依赖的库试图使用这些已经被禁用…

html--404页面

<!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <title>404 错误页面不存在&…

适用于 AI/ML 工作负载的有状态 KES

在此概念验证 &#xff08;POC&#xff09; 中&#xff0c;我们将探讨在 Kubernetes &#xff08;k8s&#xff09; 生态系统中安装和管理有状态密钥加密服务 &#xff08;KES&#xff09;。本指南促进了加密操作的无缝衔接&#xff0c;而不会将敏感的密钥材料暴露给使用型应用程…

2024年华为OD机试真题-万能字符单词拼写-C++-OD统一考试(C卷D卷)

2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集) 题目描述: 有一个字符串数组words和一个字符串chars。 假如可以用chars中的字母拼写出words中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。 words的字符仅由 a-z 英文小…

Spring Boot 3 整合 Redisson 实现分布式锁

Spring Boot 3 整合 Redisson 实现分布式锁 这篇博客详细介绍了如何在 Spring Boot 3 项目中使用 Redisson 实现分布式锁&#xff0c;包括依赖引入、Redis 配置、Redisson 配置、实现锁服务&#xff0c;以及测试控制器。希望对你有帮助&#xff01; 介绍 在分布式系统中&#…

Spring boot 单元测试类

在Spring Boot中&#xff0c;我们可以使用Spring Boot Test框架来进行单元测试。这是一个非常强大的工具&#xff0c;可以帮助我们模拟Spring环境&#xff0c;进行各种测试&#xff0c;如集成测试、容器测试等。 以下是一些Spring Boot 单元测试的示例。 基本的Spring Boot测…

【2024最新精简版】线程安全/多线程 面试篇

文章目录 一. 线程基础线程和进程什么是进程什么是线程 并发与并行的区别创建线程继承Thread类实现Runable接口实现Callable接口使用线程池 线程状态等待唤醒机制等待方法唤醒方法 二. 线程池线程池作用创建线程池线程池任务调度流程阻塞队列 BlockingQueue线程池拒绝策略核心线…

只有程序员才能看懂的笑话

哈喽&#xff0c;大家好&#xff0c;我是明智 今天又是周五摸鱼日&#xff5e; 咱们不聊技术&#xff0c;看点别的有意思的东西 往期摸鱼记录&#xff1a; 》》》程序员的那些经典段子 》》》写出bug不用怕&#xff0c;世界就是一个巨大的草台班子 【1】二进制 世界上有10种人&…

三维渲染计算阴影

在三维渲染中&#xff0c;计算阴影是提升场景真实感的关键步骤。阴影不仅提供了物体间的相对位置和空间关系&#xff0c;还增强了场景的立体感和深度感。计算阴影的方法多种多样&#xff0c;以下是几种主要的阴影计算技术及其实现原理。 1. 阴影映射&#xff08;Shadow Mappin…

随机链表的复制 排序链表

随机链表的复制 题目 . - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 思路&#xff1a; ①一个结点一个节点去拷贝&#xff0c;当拷贝了第一个节点的时候&#xff0c;把原节点与拷贝节点连接起来&#xff0c;直接到所有的节点拷贝完毕&#xff0c;这样做的目的…

专业技能篇---计算机网络

文章目录 前言计算机网络基础一、网络分层模型 HTTP一、从输入URL到页面显示发生了什么&#xff1f;二、Http的状态码有哪些&#xff1f;三、 HTTP与HTTPS有什么区别&#xff1f;四、URI 和 URL 的区别是什么?五、Cookie和Session有什么区别&#xff1f;六、GET与POST WebSock…

Android自定义View之不得不知道的文件attrs

其中demo_style如下:一般都是放的.9图片&#xff0c;为了方便就放个颜色了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190820183209784.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLm NzZG4ubmV0L3FxXzQyNzYxMz…

怎么判断文件 fileoutPutStream已经拷贝成功? 项目需求是判断fileInputStream已经拷贝

要判断文件 fileoutPutStream 已经拷贝成功&#xff0c;可以通过以下几个步骤来实现&#xff1a; 1. **确保所有数据都已写入**: 使用 FileOutputStream 的 getFD().sync() 方法&#xff0c;这会强制将所有未写的数据写入到磁盘上。 2. **检查流是否关闭成功**: 在关闭…

一文讲解什么是内容可寻址寄存器(Content-Addressable Register)

内容可寻址寄存器&#xff08;Content-Addressable Register&#xff0c;CAR&#xff09;是一种根据内容而非地址来存取数据的存储单元。这种寄存器可以通过指定的数据值来查找对应的存储位置&#xff0c;显著提高了数据匹配和检索的效率&#xff0c;尤其适用于需要快速数据查找…

MLX5_SET_TO_ONES宏解析

看代码时&#xff0c;遇到一个非常复杂的宏MLX5_SET_TO_ONES&#xff0c;这个宏的主要作用是对特定的数据结构置位&#xff0c;宏的上下文如下&#xff1a; #define __mlx5_nullp(typ) ((struct mlx5_ifc_##typ##_bits *)0) #define __mlx5_bit_off(typ, fld) (offsetof(struc…

[程序员] 表达的能力

之前看CSDN的问答区&#xff0c;很多时候&#xff0c;感觉问题的描述所要表达的意思非常模糊&#xff0c;或者说描述不清。如果是想回答问题的人想回答问题&#xff0c;首先要搞清楚是什么问题&#xff0c;就需要再问问题主很多细节的东西。三来四去&#xff0c;才能搞清楚具体…