当前位置: 首页 > news >正文

Pyecharts绘制多种炫酷气泡图

Pyecharts绘制多种炫酷气泡图

引言

数据可视化是数据分析中不可或缺的一环,而Pyecharts作为一款基于Echarts的Python图表库,提供了丰富的图表类型,其中气泡图是一种常用于展示三维数据的炫酷图表。本文将介绍如何使用Pyecharts绘制多种炫酷气泡图,并对各种参数进行详细说明,帮助读者更好地理解和定制气泡图。

准备工作

首先,确保你已经安装了Pyecharts库:

pip install pyecharts

然后,我们准备一些示例数据,这里以某公司销售数据为例。

import random# 生成示例数据
data = [(i, random.randint(50, 200), random.randint(1, 100)) for i in range(1, 11)]

基础气泡图

首先,我们来绘制一个基础的气泡图。

from pyecharts import options as opts
from pyecharts.charts import Scatter# 绘制基础气泡图
scatter_basic = Scatter()
scatter_basic.add_xaxis([str(item[0]) for item in data])
scatter_basic.add_yaxis("销售额", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=False))
scatter_basic.set_global_opts(title_opts=opts.TitleOpts(title="基础气泡图"),xaxis_opts=opts.AxisOpts(type_="category"))# 渲染图表
scatter_basic.render("basic_bubble_chart.html")

在这个基础气泡图中,我们使用了Scatter类,通过add_xaxisadd_yaxis方法添加横纵坐标数据。symbol_size参数表示气泡的大小,这里使用了销售量作为气泡的大小。label_opts参数用于控制标签的显示,这里我们将标签关闭。
在这里插入图片描述

自定义气泡图

接下来,我们将进一步自定义气泡图,包括颜色、透明度等。

from pyecharts import options as opts
from pyecharts.charts import Scatter# 绘制自定义气泡图
scatter_custom = Scatter()
scatter_custom.add_xaxis([str(item[0]) for item in data])
scatter_custom.add_yaxis("销售额", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color="skyblue", opacity=0.8))
scatter_custom.set_global_opts(title_opts=opts.TitleOpts(title="自定义气泡图"),xaxis_opts=opts.AxisOpts(type_="category"))# 渲染图表
scatter_custom.render("custom_bubble_chart.html")

在这个自定义气泡图中,我们通过itemstyle_opts参数设置了气泡的颜色和透明度。这里我们将颜色设置为天蓝色,透明度设置为0.8。

多系列气泡图

有时候,我们需要在同一张图上展示多组数据,这时可以使用多系列气泡图。

from pyecharts import options as opts
from pyecharts.charts import Scatter# 生成示例数据
data2 = [(i, random.randint(30, 150), random.randint(1, 100)) for i in range(1, 11)]# 绘制多系列气泡图
scatter_multi_series = Scatter()
scatter_multi_series.add_xaxis([str(item[0]) for item in data])
scatter_multi_series.add_yaxis("销售A", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=False))
scatter_multi_series.add_yaxis("销售B", [item[1] for item in data2],symbol_size=[item[2] for item in data2],label_opts=opts.LabelOpts(is_show=False))
scatter_multi_series.set_global_opts(title_opts=opts.TitleOpts(title="多系列气泡图"),xaxis_opts=opts.AxisOpts(type_="category"))# 渲染图表
scatter_multi_series.render("multi_series_bubble_chart.html")

在多系列气泡图中,我们通过多次调用add_yaxis方法添加不同系列的数据。
在这里插入图片描述

气泡图标签和工具箱

除了基础的气泡图外,Pyecharts还支持对气泡图的标签和工具箱进行定制。

from pyecharts import options as opts
from pyecharts.charts import Scatter# 绘制带标签的气泡图
scatter_with_label = Scatter()
scatter_with_label.add_xaxis([str(item[0]) for item in data])
scatter_with_label.add_yaxis("销售额", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=True, position="top"))
scatter_with_label.set_global_opts(title_opts=opts.TitleOpts(title="带标签的气泡图"),xaxis_opts=opts.AxisOpts(type_="category"))# 渲染图表
scatter_with_label.render("bubble_chart_with_label.html")

在这个带标签的气泡图中,我们通过label_opts参数开启了标签的显示,并设置标签位置为顶部。

接下来,我们将为气泡图添加工具箱,使用户可以更灵活地交互。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.commons.utils import JsCode# 绘制带工具箱的气泡图
scatter_with_toolbox = Scatter()
scatter_with_toolbox.add_xaxis([str(item[0]) for item in data])
scatter_with_toolbox.add_yaxis("销售额", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=False))
scatter_with_toolbox.set_global_opts(title_opts=opts.TitleOpts(title="带工具箱的气泡图"),xaxis_opts=opts.AxisOpts(type_="category"),toolbox_opts=opts.ToolboxOpts(feature={"saveAsImage": {"title": "保存图片"},"dataZoom": {"title": {"zoom": "区域缩放", "back": "区域缩放还原"}},}),
)# 渲染图表
scatter_with_toolbox.render("bubble_chart_with_toolbox.html")

在这个带工具箱的气泡图中,我们通过toolbox_opts参数添加了两个功能按钮,一个用于保存图片,另一个用于区域缩放。

动态气泡图

最后,我们介绍如何制作一个动态气泡图,通过时间轴展示数据的变化。

from pyecharts import options as opts
from pyecharts.charts import Scatter, Timeline# 生成示例数据
timeline_data = {f"2022-{i}": [(i, random.randint(50, 200), random.randint(1, 100)) for i in range(1, 11)] for i in range(1, 13)
}# 绘制动态气泡图
timeline_scatter = Timeline()
for year_month, data in timeline_data.items():scatter = Scatter()scatter.add_xaxis([str(item[0]) for item in data])scatter.add_yaxis("销售额", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=False))scatter.set_global_opts(title_opts=opts.TitleOpts(title=f"{year_month} 动态气泡图"),xaxis_opts=opts.AxisOpts(type_="category"),)timeline_scatter.add(scatter, year_month)# 渲染图表
timeline_scatter.render("dynamic_bubble_chart.html")

在动态气泡图中,我们使用了Timeline类,并通过循环逐步添加各个时间点的气泡图,从而实现动态效果。

高级气泡图定制

除了上述介绍的基础和进阶功能之外,Pyecharts还提供了一些高级的定制选项,让气泡图更加炫酷。

渐变颜色气泡图

有时候,我们希望气泡的颜色能够根据数据的大小变化而渐变,以更直观地反映数值差异。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.commons.utils import JsCode# 绘制渐变颜色气泡图
scatter_gradient_color = Scatter()
scatter_gradient_color.add_xaxis([str(item[0]) for item in data])
scatter_gradient_color.add_yaxis("销售额", [item[1] for item in data],symbol_size=[item[2] for item in data],label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color=JsCode("""new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{offset: 0,color: 'rgba(0, 255, 255, 0.7)'}, {offset: 1,color: 'rgba(0, 255, 255, 0.3)'}])""")))
scatter_gradient_color.set_global_opts(title_opts=opts.TitleOpts(title="渐变颜色气泡图"),xaxis_opts=opts.AxisOpts(type_="category"))# 渲染图表
scatter_gradient_color.render("gradient_color_bubble_chart.html")

在这个渐变颜色气泡图中,我们通过itemstyle_opts参数使用JsCode设置了颜色为渐变效果。
在这里插入图片描述

3D气泡图

为了展示更加立体的气泡图,Pyecharts也支持绘制3D气泡图。

from pyecharts import options as opts
from pyecharts.charts import Scatter3D# 绘制3D气泡图
scatter_3d = Scatter3D()
scatter_3d.add("", [(item[0], item[1], item[2]) for item in data],grid3d_opts=opts.Grid3DOpts(width=100, height=100, depth=100),label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color="skyblue", opacity=0.8))
scatter_3d.set_global_opts(title_opts=opts.TitleOpts(title="3D气泡图"))# 渲染图表
scatter_3d.render("3d_bubble_chart.html")

在3D气泡图中,我们使用了Scatter3D类,并通过grid3d_opts参数设置了三维坐标系的网格大小。
在这里插入图片描述

结语

通过本文的介绍,读者可以更全面地了解如何使用Pyecharts绘制各种炫酷气泡图,包括标签、工具箱、动态效果以及一些高级的定制选项。希望本文能够帮助读者在实际项目中更灵活地运用Pyecharts进行数据可视化,使得分析结果更加生动有趣。

相关文章:

Pyecharts绘制多种炫酷气泡图

Pyecharts绘制多种炫酷气泡图 引言 数据可视化是数据分析中不可或缺的一环,而Pyecharts作为一款基于Echarts的Python图表库,提供了丰富的图表类型,其中气泡图是一种常用于展示三维数据的炫酷图表。本文将介绍如何使用Pyecharts绘制多种炫酷…...

C# 多线程(2)——线程同步

目录 1 线程不安全2 线程同步方式2.1 简单的阻塞方法2.2 锁2.2.1 Lock使用2.2.2 互斥体Mutex2.2.3 信号量Semaphore2.2.3 轻量级信号量SemaphoreSlim2.2.4 读写锁ReaderWriterLockSlim 2.3 信号同步2.3.1 AutoResetEvent2.3.1.1 AutoResetEvent实现双向信号 2.3.2 ManualResetE…...

Java设计模式【工厂模式】

Java设计模式【工厂模式】 前言 三种工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式; 创建型设计模式封装对象的创建过程,将对象的创建和使用分离开,从而提高代码的可维护性和可扩展性 简单工厂模式 概述:将…...

AI智能分析+明厨亮灶智慧管理平台助力“舌尖上的安全”

春节是中国最重要的传统节日之一,在春节期间,人们聚餐需求激增,餐饮业也迎来了高峰期。在这个时期,餐饮企业需要更加注重食品安全和卫生质量,以保证消费者的健康和权益,明厨亮灶智慧管理成为了餐饮业中备受…...

【现代密码学基础】详解完美安全与香农定理

目录 一. 介绍 二. 完美安全的密钥与消息空间 三. 完美安全的密钥长度 四. 最优的完美安全方案 五. 香农定理 (1)理论分析 (2)严格的正向证明 (3)严格的反向证明 六. 小结 一. 介绍 一次一密方案…...

Python 将文本转换成语音播放 pyttsx3

Python 将文本转换成语音播放 pyttsx3 目录 Python 将文本转换成语音播放 pyttsx3 1. 安装 2. 使用 3. 封装 Pyttsx3 是一个 Python 库,它提供了文本到语音(Text-to-Speech,TTS)转换的功能。这个库允许 Python 程序通过调用本…...

FPGA高端项目:Xilinx Artix7系列FPGA 多路视频缩放拼接 工程解决方案 提供4套工程源码+技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案我已有的FPGA视频拼接叠加融合方案本方案的Xilinx Kintex7系列FPGA上的ov5640版本本方案的Xilinx Kintex7系列FPGA上的HDMI版本 3、设计思路框架设计框图…...

开源模型应用落地-业务优化篇(三)

一、前言 假如您跟随我的脚步,学习到上一篇的内容,到这里,相信细心的您,已经发现了,在上一篇中遗留的问题。那就是IM服务过载的时候,如何进行水平扩容? 因为在每个IM服务中,我们用JV…...

基于SpringBoot+Vue实现的物流快递仓库管理系统

基于SpringBootVue实现的物流快递仓库管理系统 文章目录 基于SpringBootVue实现的物流快递仓库管理系统系统介绍技术选型成果展示账号地址及其他说明源码获取 系统介绍 系统演示 关注视频号【全栈小白】,观看演示视频 基于SpringBootVue实现的物流快递仓库管理系…...

编程笔记 html5cssjs 072 JavaScrip BigInt数据类型

编程笔记 html5&css&js 072 JavaScrip BigInt数据类型 一、BigInt 数据类型二、BigInt 的创建和使用三、BigInt 操作与方法三、示例小结 JavaScript BigInt 数据类型是一种内置的数据类型,用于表示大于 Number.MAX_SAFE_INTEGER(即2^53 - 1&…...

matlab simulink 步进电机控制

1、内容简介 略 41-可以交流、咨询、答疑 2、内容说明 电动执行器定位控制在生产生活中具有广泛的应用,在使用搭载步进电机的电动执行器进行定位控制的时候,定位系统的定位精度和响应波形,会随着负载质量的变化而变化,这是由电…...

使用阿里云的IDaaS实现知行之桥EDI系统的单点登录

,在开始测试之前,需要确定用哪个信息作为“登陆用户的ID字段”。 这个字段用来在完成SSO登陆之后,用哪个信息将阿里云IDaaS的用户和知行之桥EDI系统的用户做对应。这里我们使用了 phonenumber 这个自定义属性。需要在阿里云做如下配置&#x…...

基于微服务的高考志愿智能辅助决策系统(附源码)

目录 一.引言 1、编写目的 2、系统功能概述 二.功能分析 三.微服务模块 1、微服务用户相关模块 (1)用户注册 (2)用户登录 (3)用户信息管理 (4)用户操作 2、微服务文件云存…...

LeetCode —— 137. 只出现一次的数字 II

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…...

pnpm、npm、yarn 包管理工具

1、npm 关键词:软件包管理器、命令行工具、一个社区和一个平台 npm(Node Package Manager)是一个用于Node.js环境的软件包管理器。它是一个命令行工具,用于安装、升级、删除和管理JavaScript软件包。npm最初是随同Node.js一起发布…...

微服务知识

1、概念 大型单体应用拆分成多个独立部署运行的微服务(解决并发问题)​​​​​​​ 2、特点 3、技术栈 4、微服务带来的问题 ​​​​​​​ 5、微服务的注册中心 服务注册与发现:微服务实例在启动时会向注册中心注册自己的信息&#xf…...

如何在微信搭建私域流量池?

A: ①给客户打标签 添加标签,多维度构建用户画像,精准发送消息。 ②群发信息 选择自定义时间,上传内容 (支持文字,图片) ,一键群发 。 ③建立专属素材库 将常用的话术、图片与文件录入至素材库,员工可随…...

MySQL原理(三)锁定机制(1)综述

一、介绍: 1、锁的本质 业务场景中存在共享资源,多个进程或线程需要竞争获取并处理共享资源,为了保证公平、可靠、结果正确等业务逻辑,要把并发执行的问题变为串行,串行时引入第三方锁当成谁有权限来操作共享资源的判…...

Qt知识点总结

将枚举类型转换为字符串 这里使用的在网络编程中&#xff0c;获取socket状态并显示的时候&#xff0c;遇到的一个问题 #include <QMetaEnum>// 将枚举类型转换为字符串 QMetaEnum metaEnum QMetaEnum::fromType<QAbstractSocket::SocketState>(); const char *c…...

什么是系统工程(字幕)13

0 00:00:00,670 --> 00:00:01,582 如果不加图 1 00:00:01,582 --> 00:00:02,130 怎么加 2 00:00:02,130 --> 00:00:03,225 我们来看一下 3 00:00:03,225 --> 00:00:03,590 你看 4 00:00:03,980 --> 00:00:06,720 右键点这个&#xff0c;添加元素 5 00:00:0…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...