数据可视化实验四: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 绘制结果

结尾语

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ECharts 词云图案例二:创意蒙版应用

ECharts 词云图案例二:创意蒙版应用 引言 在数据可视化领域,ECharts 以其强大的功能性和灵活性,成为开发者和设计师的首选工具之一。继上一篇关于 ECharts 词云图的详细介绍后,本文将探索词云图的进阶应用——使用蒙版来创造更具…

谷歌手机刷机教学

注意&#xff1a;手机已经解开了oem锁和bl 1、adb基础命令 连接设备adb devices&#xff1a;列出当前连接的所有设备。 adb connect <设备IP>&#xff1a;通过IP地址连接设备&#xff08;用于无线连接&#xff09;。 设备信息adb shell getprop&#xff1a;获取设备的所…

MySQL的DDL语句

文章目录 ☃️概述☃️DDL&#xff08;数据定义语言&#xff09;☃️数据库操作☃️表操作☃️DDL的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用…

C#修改 EXE 文件图标和 winForm 窗口图标

修改 EXE 文件图标 1.准备好图片&#xff0c;转换为 Icon 图片&#xff1b; 2.右键工程&#xff0c;选择属性&#xff1b; 3.选择 Icon 图标即可&#xff1b; 4.重新生成可执行文件&#xff0c;查看。 修改 winForm 窗口图标 1.选中 winForm &#xff0c;查看属性&#x…

Android提供的LruCache类简介(1)

* If your cached values hold resources that need to be explicitly released, * override {link #entryRemoved}. * 如果你cache的某个值需要明确释放&#xff0c;重写entryRemoved() * If a cache miss should be computed on demand for the corresponding keys, * ov…

CVPR最佳论文:谷歌基于Spectral Volume从单图生成视频

一、摘要&#xff1a; 论文&#xff1a;Generative Image Dynamics&#xff0c;https://arxiv.org/pdf/2309.07906 项目主页&#xff1a;https://generative-dynamics.github.io/ 本文提出了一种新颖的方法来模拟场景运动的图像空间先验。通过从真实视频序列中提取的自然振荡…

调试实战 | 记一次有教益的 vs2022 内存分配失败崩溃分析(续)

前言 前一阵子遇到了 vs2022 卡死的问题&#xff0c;在上一篇文章中重点分析了崩溃的原因 —— 当 vs2022 尝试分配 923MB 的内存时&#xff0c;物理内存页文件大小不足以满足这次分配请求&#xff0c;于是抛出异常。 本篇文章将重点挖掘一下 vs2022 在崩溃之前已经分配的内容…

昇思25天学习打卡营第4天|网络构建|函数式自动微分

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) 网络构建 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也…

借助AI营销类API,实现自动化的营销流程

借助AI营销类API&#xff0c;企业可以实现自动化的营销流程&#xff0c;提高效率和效果&#xff0c;并节省大量的时间和资源。这些API利用人工智能和机器学习的技术&#xff0c;能够自动化地执行各种营销任务和流程。首先&#xff0c;AI营销类API可以帮助企业实现自动化的市场调…

【鸿蒙】创建第⼀个鸿蒙项⽬

点击 Create Project 配置项目 开发工具界面 工程介绍

探索AI前沿:本地部署GPT-4o,打造专属智能助手!

目录 1、获取API_key 2、开始调用 3、openai连接异常 4、解决方法&#xff1a; 5、调用GPT-4o 1、获取API_key 这里就不多赘述了&#xff0c;大家可以参考下面这篇博客 怎么获取OpenAI的api-key【人工智能】https://blog.csdn.net/qq_51625007/article/details/13763274…

大数据与java哪个好找工作?这篇文章帮你做选择!

大数据与java哪个好找工作&#xff1f;这篇文章帮你做选择&#xff01; 还在为选择Java开发还是Java大数据而头疼吗&#xff1f;别担心&#xff0c;本文将从就业前景、学习方向、学习内容以及薪资待遇四个方面&#xff0c;为你揭开Java和Java大数据的神秘面纱&#xff0c;帮你做…

ZW3D二次开发_删除草图中的实体

1.目前草图中的实体不能直接通过id删除&#xff0c;而是通过entityPath实体路径&#xff0c;所以需要将id转化为实体路径。 2.以下示例代码的主要功能为获取草图中的所有实体并删除&#xff1a; int Count;int *idEnts;ZF_CALL(cvxSkInqGeom(&Count, &idEnts));//获取…

《窄门》情不知所起,而一往情深

《窄门》情不知所起&#xff0c;而一往情深 安德烈纪德&#xff08;1869-1951&#xff09;&#xff0c;法国作家。纪德一生著有小说、剧本、论文、散文、日记、书信多种&#xff0c;主要作品有小说《背德者》《窄门》《田园交响曲》《伪币制造者》等&#xff0c;戏剧《康多尔王…

x64汇编fastcall调用约定

x64汇编环境&#xff1a;只需要在x86基础上对项目属性进行设置&#xff0c;将平台设置为所有平台&#xff1b; 以及在将debug改为x64模式即可&#xff1a; 后续写完代码直接生成项目再使用本地调试器进行运行即可。 fastcall调用约定 在x64架构下&#xff0c;fastcall调用约定…

android倒计时封装(活动进入后台,倒计时依然能正常计时)

public class TimeUtils { /倒计时时长 单位&#xff1a;秒/ public static int COUNT 20*60; /当前做/ private static int CURR_COUNT 0; /预计结束的时间/ private static long TIME_END 0; /计时器/ private static Timer countdownTimer; /显示倒计时的textVi…

大数据学习-大数据介绍

意义 从海量的数据中分析出海量数据背后的价值 需要分析海量的数据&#xff0c;就需要存储、计算和分析 那就需要分布式多台计算机合适的工具来处理数据 工具 特点 大数据的核心工作&#xff1a;从海量的、高增长的、多类别的、信息密度低的数据中挖掘出高质量的结果 数据存储…

STM32通过SPI软件读写W25Q64

文章目录 1. W25Q64 2. 硬件电路 3. W25Q64框架图 4. 软件/硬件波形对比 5. 代码实现 5.1 MyI2C.c 5.2 MyI2C.h 5.3 W25Q64.c 5.4 W25Q64.h 5.5 W25Q64_Ins.h 5.6 main.c 1. W25Q64 对于SPI通信和W25Q64的详细解析可以看下面这篇文章 STM32单片机SPI通信详解-CSDN博…

开发中遇到的一个bug

遇到的报错信息是这样的&#xff1a; java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [hm-api,hm-common,hm-service] are excluded from annotation processing 翻译过来就是存在循环引用的情况&#xff0c;导…

C++进阶之AVL树

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 C进阶​ ​​​​算法 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.插入 三.旋转 3.1右旋 …