Pyecharts绘制多彩气泡图:从基础到高级定制【第49篇—python:多彩气泡图】

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进行数据可视化,使得分析结果更加生动有趣。

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

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

相关文章

Git 介绍 与 配置

Git 介绍 Git是一个分布式版本控制系统,用于跟踪文件的更改和协作开发。它可以管理项目的版本历史记录,并允许多个开发者在同一时间进行并行开发。 解决上图产生的问题就出现了git 分布式版本控制系统 看下图 Git 配置 Git的基本配置包括用户名和电子邮…

leetcode hot100岛屿的最大面积

本题是让求岛屿的最大面积,和上一个题求岛屿的数量类似,也是通过dfs或者bfs进行求解。 那么,首先我们判断dfs函数的参数,需要grid[][],需要横坐标i,纵坐标j。那么,这里我们求的是最大面积&…

2万块的郎酒,都是我们惯的

文 | 琥珀酒研社 作者 | 五画 当我看到郎酒拿出快2万一瓶纪念酒的时候,我就知道,这场高价酒的喧嚣和吵闹,又到了一个新的高度。 和别的行业有所不同,白酒很少谈智商税,再高的价格,总有个冠冕堂皇的理由。…

Linux文本三剑客---awk经典案例

awk(是一种处理文本文件的应用程序,它依次处理文件的每一行,并读取里面的每一个字段。) awk 包含几个特殊的内建变量(可直接用)如下所示: 1、获取根分区剩余大小 #可以使用df -h命令来查看所有…

ElementUI Form:InputNumber 计数器

ElementUI安装与使用指南 InputNumber 计数器 点击下载learnelementuispringboot项目源码 效果图 el-radio.vue 页面效果图 项目里el-input-number.vue代码 <script> export default {name: el_input_number,data() {return {num: 1,num5: 1,num6: 1,num7: 1,num8:…

Logstash 7.7.1版本安装系统梳理

前言 上一篇文章介绍了 《ElasticSearch7.7.1集群搭建 & Kibana安装》&#xff0c;今天说一下 Logstash的安卓和配置&#xff1b; Logstash是一个开源的数据收集引擎&#xff0c;具有实时管道功能。它可以动态地将来自不同数据源的数据统一起来&#xff0c;并将数据标准化…

多线程代码案例之线程池

作者简介&#xff1a; zoro-1&#xff0c;目前大二&#xff0c;正在学习Java&#xff0c;数据结构&#xff0c;javaee等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 创建线程池 public class Poo…

Xmind文件转CSV、Excel文件

不知道小伙伴们有没有发现&#xff0c;新版Xmind文件转Excel是收费的功能。因为自己不经常使用Xmind&#xff0c;收到一个这样的文件&#xff0c;需要转换成Excel&#xff0c;也不不值得破解或者付费。在github上有一个工具XMind2TestCase&#xff0c;非常不错&#xff0c;可以…

网安人必看!CISP家族顶流证书攻略

网络安全已成为当今的热门领域&#xff0c;证书在职业发展中的重要性不言而喻。但是&#xff0c;证书市场五花八门&#xff0c;选择适合自己的证书可是个大问题。别担心&#xff0c;今天我们就来聊聊CISP家族的几个热门认证&#xff0c;让你在网络安全领域的发展更加顺利&#…

在虚拟环境中导出和安装requirements.txt文件

背景&#xff1a; ​ 一般在项目开放完成后&#xff0c;我们需要把项目工程所需要的虚拟环境依赖包导出&#xff0c;以便在服务器上进行安装和配置&#xff0c;这时候我们一般将所需要的python相关库导出一个txt文件&#xff0c;后续在服务器上之前pip安装即可。 措施&#x…

【HarmonyOS 4.0 应用开发实战】TypeScript入门之接口详讲

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

Nicn的刷题日常之带空格直角三角形图案

1.题目描述 描述 KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的带空格直角三角形图案。 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示直角三角形直角边的长度&am…

测试环境搭建整套大数据系统(二:安装jdk,mysql)

一&#xff1a;安装JDK 参考 https://blog.csdn.net/weixin_43446246/article/details/123328558 二&#xff1a;安装mysql 1.因为我们安装cdh6.3.2。cdh支持的是5.6和5.7版本的mysql。 2. 步骤 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.…

RT-Thread:STM32的PB3,PB4 复用IO配置为GPIO

说明&#xff1a;在使用 STM32F103CBT6 配置了 PB3 为IO&#xff0c;测试时发现读取这个IO的电平时钟是0&#xff0c;即便单管脚上的电平是1&#xff0c;读取的数据任然是0,查规格书后发现PB3,PB4是JTAG复用口&#xff0c;要当普通IO用需要配置。 配置工具&#xff1a;STM32Cu…

【C++进阶08】哈希的应用(位图and布隆过滤器)

一、位图 1.1 位图的概念 面试题 给40亿个不重复的无符号整数&#xff0c;没排过序 给一个无符号整数&#xff0c;如何快速判断一个数是否在 这40亿个数中。【腾讯】 能想到的解决思路&#xff1a; 遍历&#xff0c;时间复杂度O(N)排序(O(NlogN)) 利用二分查找: logN放到哈…

242. 有效的字母异位词(力扣)(C语言题解)

✨欢迎来到脑子不好的小菜鸟的文章✨ &#x1f388;创作不易&#xff0c;麻烦点点赞哦&#x1f388; 所属专栏&#xff1a;刷题 我的主页&#xff1a;脑子不好的小菜鸟 文章特点&#xff1a;关键点和步骤讲解放在 代码相应位置 前提&#xff1a; 看本文章之前&#xff0c;建…

FFmpeg和Monibuka拉取rtsp(大华摄像头)视频流时未进行URLCode编码导致提示404等报错

场景 Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放&#xff1a; Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放_monibuca 搭建流媒体服务-CSDN博客 Nginx搭建RTMP服务器FFmpeg…

Airflow原理浅析

⭐️ airflow基本原理 Apache Airflow 是一个开源的工作流自动化工具&#xff0c;它用于调度和管理复杂的数据工作流。Airflow 的原理基于有向无环图&#xff08;DAG&#xff09;的概念&#xff0c;它通过编写和组织任务的有向图来描述工作流程。 以下是 Apache Airflow 的一…

Linux第40步_移植ST公司uboot的第1步_创建配置文件_设备树_修改电源管理和sdmmc节点

ST公司uboot移植分两步走&#xff1a; 第1步&#xff1a;完成“创建配置文件&#xff0c;设备树&#xff0c;修改电源管理和sdmmc节点&#xff0c;以及shell脚本和编译”。 第2步“完成”修改网络驱动、USB OTG设备树和LCD驱动&#xff0c;以及编译和烧写测试“。 移植太复杂…

【c语言】简单贪吃蛇的实现

目录 一、游戏说明 ​编辑 二、地图坐标​ ​编辑 三、头文件 四、蛇身和食物​ 五、数据结构设计​ 蛇节点结构如下&#xff1a; 封装一个Snake的结构来维护整条贪吃蛇&#xff1a;​ 蛇的方向&#xff0c;可以一一列举&#xff0c;使用枚举&#xff1a; 游戏状态&a…