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

news2025/2/23 14:22:09

目录

一、使用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.coloradmin.cn/o/1837309.html

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

相关文章

【ai】如何在ollama中随意使用hugging face上的gguf开源模型

【背景】 ollama的pull命令可以直接pull ollama列表中现有的模型,但是ollama可以直接pull的模型大都是英语偏好(llama2有直接可以pull的chinese版本),而hugging face上则有大量多语种训练的模型,如果能直接使用huggin…

如何使用GPT?初学者的指南

ChatGPT是一个非常先进的AI工具,它使用GPT-4架构,能够生成自然的语言回应。它的多功能性和理解复杂指令的能力,使得很多人用它来回答各种问题,就像用Google一样输入关键词。不过,ChatGPT还能做更多事情,下面…

低代码结合自研项目打包发布

nginx配置 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_type applica…

成都晨持绪科技:2024年抖音网店做起来难吗

随着抖音平台的日益火爆,越来越多的商家和个人开始关注并尝试开设自己的抖音网店。然而,面对激烈的市场竞争和不断变化的平台规则,许多人都在问:2024年抖音网店做起来难吗? 要回答这个问题,我们首先需要了解抖音网店的…

SSM整合-前后端分离(实现增删改查)

实现增删改查 实现功能03-添加家居信息需求分析/图解思路分析代码实现注意事项和细节 实现功能04-显示家居信息需求分析/图解思路分析代码实现 实现功能05-修改家居信息需求分析/图解思路分析代码实现注意事项和细节 实现功能06-删除家居信息需求分析/图解思路分析代码实现课后…

微信ipad协议8049新版本

首先我们要先了解下ipad协议是什么 ,ipad协议又叫微信协议 是基于微信IPad协议的智能控制系统帮助企业快速连接客户,创造营销氛围,实现自动获客、自动传播、自动转化、智能营销等分布式营销服务。 通过API 实现 个性化微信功能 (例…

和鲸101计划:以神经计算建模培训,助力北大学术人才培养

探索与求知,培养与传承。 让青年人更早地触摸到科学研究的前沿,便能吸引更多人才投身于学科建设。 11月4日,由北京大学信息处理实验室开展进行,北京大学心理与认知科学学院院长吴思教授及课题组成员授课的第二届神经计算建模及编…

Python 自动化测试入门有哪些内容?

自动化测试是软件测试领域中的一个重要技术,它利用脚本和工具来执行测试任务,减少了人工操作的工作量和时间消耗。Python 是一种功能强大且易于学习的编程语言,被广泛应用于自动化测试领域。本文将从0到1讲解如何使用 Python 进行自动化测试&…

全开源版人才招聘系统源码 小程序运营级平台源码 类似58同城招聘、智联招聘平台

在当今数字化时代,人才招聘与平台运营成为了企业发展的重要环节。分享一套功能全面、易于二次开发的人才招聘系统源码小程序运营级平台源码。这些源码基于类似58同城招聘、智联招聘等大型招聘平台的设计理念,旨在为企业提供高效、便捷的人才招聘与平台运…

企业电脑防泄密软件有哪些|电脑防泄密软件“琅琊榜”排名

企业电脑防泄密软件是用于保护企业内部数据安全、防止敏感信息泄露的专业工具。电脑防泄密软件“琅琊榜”都有哪些呢?以下是八款推荐的防泄密软件。 电脑防泄密软件“琅琊榜”: 1.安企神 - 综合性防泄密解决方案,包括上网行为审计、文档加密…

千锋Vue学习笔记

千锋Vue学习笔记 我终于抓到申请宝贝啦! ——20240618 文章目录 千锋Vue学习笔记写在前面1. 前言2. 模板语法3. 组件4. 生命周期5. swiper6. 指令7. vue-cli8. Vue.config.js9. 路由10. 小练习和组件库11. vuex12. git13. nginx14. Vue315. ts16. Vue3补充1-前言2-…

Ubuntu24多版本python解释器使用

1.前言 已给树莓派5安装了Ubuntu24.04,带有python3.12.3,现在用视觉需要用到3.11版本的python解释器 2.实操过程 主要是对用到的命令进行备份,方便后面查询 2.1 安装python3.11 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-ge…

香港优才,申请材料信息差!中介不会告诉你~

这两年diy申请香港优才身份的人非常多,获批都过万~但是被拒的数量更多~ 我就是打破信息差,快人一步申请,获批也早一点。就我经验来说,材料非常重要,因为申请佐证材料不足被拒的人非常多。 香港优才材料常见注意事项 …

基于SpringBoot+Vue会所产后护理系统设计和实现

基于SpringBootVue会所产后护理系统设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &#…

java 导出excel表格POI - XSSFWorkbook,自定义各种格式,多级表格,同一个sheet按照天往后排列

maven的依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version><scope>compile</scope></dependency><dependency><groupId>org.apache.poi</…

超级会员卡积分收银小程序源码系统,在线充值+商家核销+在线下单 附带源代码+搭建部署教程

系统概述 在当今数字化快速发展的时代&#xff0c;移动支付已经成为人们生活中不可或缺的一部分。为了满足商家和消费者对于便捷、高效支付体验的需求&#xff0c;超级会员卡积分收银小程序源码系统应运而生。本文将深入介绍该源码系统的开发背景及其特色功能&#xff0c;附带…

【Linux环境下Hadoop部署】—报错“Unit ntpd.service could not be found.“

项目场景&#xff1a; 执行 “systemctl status ntpd” 命令。 问题描述 报错&#xff1a;Unit ntpd.service could not be found. 原因分析&#xff1a; 没有安装ntp 解决方案&#xff1a; 执行 “yum install ntp” 命令&#xff0c;再次执行 “systemctl status ntpd” 命令…

python 【包含数据预处理】基于词频生成词云图

基于词频生成词云图 背景目的 有一篇中文文章&#xff0c;或者一本小说。想要根据词频来生成词云图。 为什么中文需要分词 中文分词是理解和处理中文文本的关键步骤&#xff0c;它直接影响到后续的文本分析和信息提取的准确性和有效性。 无明显单词分隔&#xff1a;中文文本不…

HTML5基本语法

文章目录 HTML5基本语法一、基础标签1、分级标题2、段标签3、换行及水平线标签4、文本格式标签 二、图片标签1、格式2、属性介绍 三、音频标签1、格式2、属性介绍 四、视频标签1、格式2、属性介绍 五、链接标签1、格式2、显示特点3、属性介绍4、补充&#xff08;空链接&#xf…

【C++】Template模板

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…