Pyecharts绘制多种炫酷气泡图

news2024/12/27 14:31:06

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.coloradmin.cn/o/1424810.html

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

相关文章

【CSS】css获取子元素的父元素,即通过子元素选择父元素(使用CSS伪类 :has() :not() )

这里写目录标题 一、:has获取第一个div获取包含 a.active 的 li获取第二个div 二、:not除了类名为active 的 a,其他的a的字体都为18px <div><h1>标题</h1></div><div><ul><li><a href"#" class"active">测…

基于YOLOv8的水下生物检测,多种优化方法---自研注意力BSAM助力涨点(一)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:详细介绍了水下生物检测整个过程&#xff0c;从数据集到训练模型到结果可视化分析&#xff0c;以及如何优化提升检测性能。 &#x1f4a1;&#x1f4a1;&#x1f4a1;加入自研注意力BSAM mAP0.5由原始的0.522提升至0.553…

【AG32VF407】国产MCU+FPGA,更新官方固件解决8Mhz内部晶振不准,Verilog实测7.9Mhz!

视频讲解 [AG32VF407]国产MCUFPGA&#xff0c;更新官方固件解决8Mhz内部晶振不准&#xff0c;Verilog实测7.9Mhz&#xff01; 实验过程 之前出现的双路pll不同频率的测试中&#xff0c;提出了内部晶振输出不准的问题&#xff0c;和官方沟通后得到极大改善&#xff0c;方法如下…

Excel技能——使用条件格式保护数据

1.选中需要保护数据的单元格 2.选择“条件格式”——“新建规则” 3.选择“使用公式确定要设置格式的单元格”——在条件单元格设置格式的位置&#xff0c;写“”——光标选中输入密码的单元格&#xff0c;此处是点击“123”处的单元格——输入“<>”&#xff08;意思是不…

Unity学习之Unity核心(一)2D相关

文章目录 1. 前言2 图片导入概述3 图片设置的六大部分3.1 纹理类型3.1.1 Default3.1.2 Normal Map 法线贴图格式3.1.3 Editor GUI and Legacy GUI3.1.4 Sprite3.1.5 Cursor 自定义光标3.1.6 Cookie 光源剪影格式3.1.7 LightMap光照贴图格式3.1.8 Single Channel 纹理只需要单通…

【Python 元类探秘】之四:深入检查类定义✨

【Python 元类探秘】之四&#xff1a;深入检查类定义 &#x1f50d; 前言 &#x1f389; 在 Python 的编程艺术中&#xff0c;元类&#xff08;Metaclass&#xff09;犹如幕后的导演&#x1f3ac;&#xff0c;悄然塑造着类的本质和行为。这个概念&#xff0c;虽然对于初学者来…

存内计算技术—解决冯·诺依曼瓶颈的AI算力引擎

文章目录 存内计算技术背景CSDN首个存内计算开发者社区硅基光电子技术存内计算提升AI算力知存科技存算一体芯片技术基于存内计算的语音芯片的实现挑战 参考文献 存内计算技术背景 存内计算技术是一种革新性的计算架构&#xff0c;旨在克服传统冯诺依曼架构的瓶颈&#xff0c;并…

家居设计软件的开发框架

家居设计软件的开发框架可以涵盖多个方面&#xff0c;包括图形渲染、用户界面、数据库管理等。以下是一些常用的开发框架和技术&#xff0c;可以用于家居设计软件的开发&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0…

linux解决访问/下载github连接超时或下载慢的问题

问题 我这里是树莓派从github下载资源出现无法连接&#xff0c;连接超时的问题&#xff0c;如下所示解决方式 修改/etc/hosts文件 例&#xff1a; sudo nano /etc/hosts #添加如下 192.30.255.112 github.com git 185.31.16.184 github.global.ssl.fastly.net这里以树莓派为…

element中calendar组件自定义显示(例如:日期上面显示工作负责人)vue+element自定义日历

目录 1. 属性了解&#xff08;[更多](https://element.eleme.cn/#/zh-CN/component/calendar)&#xff09;2. 代码实现3. 效果图 1. 属性了解&#xff08;更多&#xff09; 2. 代码实现 <template><div class"CalendarPage"><!-- 按年月筛选&#xf…

全链路压测的关键点是什么?

全链路压测是一种重要的性能测试方法&#xff0c;用于评估应用程序或系统在真实生产环境下的性能表现。通过模拟真实用户行为和流量&#xff0c;全链路压测能够全面评估系统在不同负载下的稳定性和性能表现。本文将介绍全链路压测的关键点&#xff0c;以帮助企业更好地理解和应…

QSqlRelationalTableModel 关系表格模型

一、 1.1 QSqlRelationalTableModel继承自QSqlTableModel&#xff0c;并且对其进行了扩展&#xff0c;提供了对外键的支持。一个外键就是一个表中的一个字段 和 其他表中的主键字段之间的一对一的映射。例如&#xff0c;“studInfo”表中的departID字段对应的是“departments…

linux环境安装git、maven、jenkins等

重启 jenkins的命令&#xff1a; systemctl start jenkins 如果没有vim 命令 可以使用 yum install vim 安装 vim git 下载包地址 https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz 1.安装依赖环境&#xff1a; yum install -y curl-devel expat-devel ge…

RK3588平台开发系列讲解(视频篇)RKMedia的VDEC模块

文章目录 一、 VDEC模块支持的编码标准介绍二、VDEC API的调用三、VDEC解码流程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢RKMedia是RK提供的一种多媒体处理方案,可实现音视频捕获、音视频输出、音视频编解码等功能。 一、 VDEC模块支持的编码标准介绍 RK3688 V…

【C/C++ 04】归并排序

归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用&#xff0c;也是用空间换时间思维的体现。 将已有序的子序列合并&#xff0c;得到完全有…

洁净室环境监测轮转系统lighthouse多路切换采样系统 中邦兴业

顺序多路切换采样系统在监测颗粒趋势方面发挥着至关重要的作用&#xff0c;特别是在注重产品产量的应用。虽然GMP法规没有强制要求使用这样的系统&#xff0c;但这样的系统在半导体和磁盘驱动器等行业中得到了广泛应用。半导体行业依靠顺序多路切换采样系统来确保颗粒物水平保持…

QT5.14+VS2017安装踩过的一些坑

1.在QT中使用MSVC只能用VS2017&#xff0c;相应的调试器的版本只能用15.9&#xff0c;高于15.9的亲测都不行。完整的安装除了需要QT5.15和VS2017&#xff0c;还需要Windows SDK (10.0.22621) 下载地址&#xff1a;https://developer.microsoft.com/zh-cn/windows/downloads/win…

2023年06月CCF-GESP编程能力等级认证Python编程四级真题解析

一、单选题(共15题,共30分) 第1题 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A:编辑 B:保存 C:调试 D:编译 答案:D 第2题 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数据中有两个相等记录的关…

网络协议 TCP协议

网络协议 TCP协议 文章目录 网络协议 TCP协议1. TCP协议段格式2. 可靠传输保障机制2.1 确认应答2.2 超时重传 3. 连接保障机制3.1 三次握手&#xff08;建立连接&#xff09;3.2 四次挥手&#xff08;断开连接&#xff09;3.3 TCP状态转换过程 4. 传输效率保障机制4.1 滑动窗口…

fastreport 控件 修改codebar的默认条码定界符

Codebar又称NW7条码&#xff0c;包括abcd0123456789:$/.共20个符号&#xff0c;类似code39码一样前后*号定界符&#xff0c;codebar只能以abcd四个字母为定界符&#xff0c;但fastreport默认的定界符不符合要求&#xff0c;经过反编译&#xff0c;发定它默认加上了A开头&#x…