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

pyecharts可视化图表-scatter:从入门到精通

目录

    • 什么是散点图?
    • 环境准备
    • 基础散点图实现
      • 代码详解
    • 多维度数据散点图
    • 代码详解
    • 带颜色视觉映射的散点图
    • 代码详解
    • 带分割线的散点图
    • 代码详解
    • 带大小视觉映射的散点图
    • 代码详解

散点图是数据可视化中非常强大的工具,能够直观展示变量间关系。本教程将带您从基础到高级,全面掌握pyecharts中散点图的使用技巧。pyecahts源码在这里插入图片描述

什么是散点图?

散点图(Scatter Chart)是一种常用的可视化图表,用于展示两个变量之间的关系。它通过在坐标系中绘制数据点,来呈现变量间的相关性、分布规律或异常值。散点图特别适合以下场景:

  • 分析变量间的相关性(正相关、负相关或无相关)
  • 识别数据中的聚类或异常值
  • 观察数据的分布模式
  • 比较不同组数据的分布特征

在数据科学、机器学习、统计学和商业分析等领域,散点图都是一种基础且强大的可视化工具。
散点图(Scatter Chart)是一种常用的可视化图表,用于展示两个变量之间的关系。它通过在坐标系中绘制数据点,来呈现变量间的相关性、分布规律或异常值。散点图特别适合以下场景:

  • 分析变量间的相关性(正相关、负相关或无相关)
  • 识别数据中的聚类或异常值
  • 观察数据的分布模式

环境准备

在开始之前,请确保你已经安装了pyecharts库。如果尚未安装,可以使用以下命令:

pip install pyecharts

安装完成后,我们就可以开始创建各种精美的散点图了。
在开始之前,请确保你已经安装了pyecharts库。如果尚未安装,可以使用以下命令:

pip install pyecharts

基础散点图实现

下面是一个基础散点图的实现代码,我们将逐步讲解其中的各个部分:

适用场景:展示两个数值变量之间的基本关系,适合初步探索数据相关性。
下面是一个基础散点图的实现代码,我们将逐步讲解其中的各个部分:

# 导入pyecharts的选项配置模块
import pyecharts.options as opts
# 导入散点图图表类型
from pyecharts.charts import Scatter"""
Gallery 使用 pyecharts 1.1.0
参考地址: `https://echarts.apache.org/examples/editor.html?c=scatter-simple` 目前无法实现的功能:1、暂无
"""# 准备数据,这里是一个二维数组,每个元素是一个[x, y]坐标对
data = [[10.0, 8.04],[8.0, 6.95],[13.0, 7.58],[9.0, 8.81],[11.0, 8.33],[14.0, 9.96],[6.0, 7.24],[4.0, 4.26],[12.0, 10.84],[7.0, 4.82],[5.0, 5.68],
]# 按照x轴数据进行排序,使图表展示更有条理
data.sort(key=lambda x: x[0])# 提取x轴和y轴数据
x_data = [d[0] for d in data]
y_data = [d[1] for d in data]# 创建散点图实例
(Scatter()# 添加x轴数据.add_xaxis(xaxis_data=x_data)# 添加y轴数据.add_yaxis(series_name="",  # 系列名称,这里为空y_axis=y_data,   # y轴数据symbol_size=20,  # 散点的大小label_opts=opts.LabelOpts(is_show=False),  # 不显示数据标签)# 设置系列选项(这里未做特殊设置).set_series_opts()# 设置全局选项.set_global_opts(# x轴选项xaxis_opts=opts.AxisOpts(type_="value",  # 数值型坐标轴splitline_opts=opts.SplitLineOpts(is_show=True)  # 显示分隔线),# y轴选项yaxis_opts=opts.AxisOpts(type_="value",  # 数值型坐标轴axistick_opts=opts.AxisTickOpts(is_show=True),  # 显示刻度splitline_opts=opts.SplitLineOpts(is_show=True),  # 显示分隔线),# 提示框选项tooltip_opts=opts.TooltipOpts(is_show=False),  # 不显示提示框)# 渲染到Notebook中显示.render_notebook()
)

代码详解

  1. 导入模块:我们导入了pyecharts.options用于配置图表选项,以及Scatter用于创建散点图。

  2. 数据准备:我们创建了一个二维数组data,包含了11个数据点。每个数据点都是一个[x, y]坐标对。

  3. 数据排序:使用sort方法按照x轴的值对数据进行排序,这样可以使散点图的展示更加直观。

  4. 数据提取:将x轴和y轴的数据分别提取到x_datay_data列表中。

  5. 创建图表:使用链式调用创建散点图实例,并进行配置:

    • add_xaxis:添加x轴数据
    • add_yaxis:添加y轴数据,设置散点大小和标签选项
    • set_series_opts:设置系列选项(这里未做特殊配置)
    • set_global_opts:设置全局选项,包括坐标轴和提示框的配置
    • render_notebook:在Jupyter Notebook中渲染图表
      在这里插入图片描述

多维度数据散点图

在实际应用中,我们经常需要展示多维度的数据。下面是一个展示三维数据的散点图实现:

适用场景:当数据包含三个或更多维度时,可以使用多维度散点图同时展示多个变量间的关系。
在实际应用中,我们经常需要展示多维度的数据。下面是一个展示三维数据的散点图实现:

# 导入必要的模块
from pyecharts import options as opts 
from pyecharts.charts import Scatter 
from pyecharts.commons.utils import JsCode 
from pyecharts.faker import Faker # 创建散点图实例
c = (Scatter() .add_xaxis(Faker.choose())  # 使用Faker库生成x轴数据.add_yaxis("商家A",# 生成二维数据,每个数据点包含[x, y, value]三个维度[list(z) for z in zip(Faker.values(), Faker.choose())],# 自定义标签格式化器label_opts=opts.LabelOpts(formatter=JsCode("function(params){return params.value[1] +' : '+ params.value[2];}")),)# 设置全局选项.set_global_opts(title_opts=opts.TitleOpts(title="Scatter-多维度数据"),  # 设置标题# 自定义提示框格式化器tooltip_opts=opts.TooltipOpts(formatter=JsCode("function (params) {return params.name + ' : ' + params.value[2];}")),# 设置视觉映射配置visualmap_opts=opts.VisualMapOpts(type_="color", max_=150, min_=20, dimension=1  # 基于第二个维度的值映射颜色),)
)
# 在Notebook中渲染图表
c.render_notebook()

代码详解

  1. 导入模块:除了基本的optionsScatter外,我们还导入了JsCode用于编写JavaScript代码,以及Faker用于生成模拟数据。

  2. 数据准备:使用Faker.choose()Faker.values()生成模拟数据,并将其组合成三维数据点。

  3. 添加数据系列

    • add_xaxis:添加x轴数据
    • add_yaxis:添加y轴数据,这里每个数据点包含三个维度的信息
    • label_opts:使用JavaScript函数自定义标签显示格式
  4. 全局配置

    • title_opts:设置图表标题
    • tooltip_opts:使用JavaScript函数自定义提示框显示格式
    • visualmap_opts:设置视觉映射,根据第二个维度的值映射散点颜色
      在这里插入图片描述

带颜色视觉映射的散点图

视觉映射是一种强大的功能,可以根据数据的值来映射散点的颜色或大小,使图表更加直观。下面是一个带颜色视觉映射的散点图实现:

适用场景:当需要突出显示数据值的大小差异时,颜色视觉映射可以帮助快速识别数据分布特征。
视觉映射是一种强大的功能,可以根据数据的值来映射散点的颜色或大小,使图表更加直观。下面是一个带颜色视觉映射的散点图实现:

# 导入必要的模块
from pyecharts import options as opts 
from pyecharts.charts import Scatter 
from pyecharts.faker import Faker # 创建散点图实例
c = (Scatter() .add_xaxis(Faker.choose())  # 使用Faker库生成x轴数据.add_yaxis("商家A", Faker.values())  # 添加y轴数据# 设置全局选项.set_global_opts( title_opts=opts.TitleOpts(title="Scatter-VisualMap(Color)"),  # 设置标题visualmap_opts=opts.VisualMapOpts(max_=150),  # 设置视觉映射,最大值为150) 
)
# 在Notebook中渲染图表
c.render_notebook()

代码详解

  1. 导入模块:导入了optionsScatterFaker模块。

  2. 数据准备:使用Faker.choose()生成x轴数据,Faker.values()生成y轴数据。

  3. 添加数据系列

    • add_xaxis:添加x轴数据
    • add_yaxis:添加y轴数据,设置系列名称为"商家A"
  4. 全局配置

    • title_opts:设置图表标题为"Scatter-VisualMap(Color)"
    • visualmap_opts:设置视觉映射,这里使用默认的颜色映射,并设置最大值为150

通过视觉映射,散点的颜色会根据y轴值的大小自动变化,值越大,颜色越深,使数据的分布更加直观。
在这里插入图片描述

带分割线的散点图

在散点图中添加分割线可以帮助我们更好地定位数据点的位置。下面是一个显示分割线的散点图实现:

适用场景:当数据点分布较广或需要精确读取数据点坐标时,分割线可以提高图表的可读性。
在散点图中添加分割线可以帮助我们更好地定位数据点的位置。下面是一个显示分割线的散点图实现:

# 导入必要的模块
from pyecharts import options as opts 
from pyecharts.charts import Scatter 
from pyecharts.faker import Faker # 创建散点图实例
c = (Scatter() .add_xaxis(Faker.choose())  # 使用Faker库生成x轴数据.add_yaxis("商家A", Faker.values())  # 添加y轴数据# 设置全局选项.set_global_opts( title_opts=opts.TitleOpts(title="Scatter-显示分割线"),  # 设置标题xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),  # 显示x轴分割线yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),  # 显示y轴分割线) 
)
# 在Notebook中渲染图表
c.render_notebook()

代码详解

  1. 导入模块:导入了optionsScatterFaker模块。

  2. 数据准备:使用Faker.choose()生成x轴数据,Faker.values()生成y轴数据。

  3. 添加数据系列

    • add_xaxis:添加x轴数据
    • add_yaxis:添加y轴数据,设置系列名称为"商家A"
  4. 全局配置

    • title_opts:设置图表标题为"Scatter-显示分割线"
    • xaxis_opts:设置x轴选项,通过splitline_opts启用分割线
    • yaxis_opts:设置y轴选项,通过splitline_opts启用分割线

分割线的添加使得我们可以更清晰地看到每个数据点在坐标系中的具体位置,特别是当数据点分布较广时,分割线可以帮助我们更好地理解数据的分布情况。
在这里插入图片描述

带大小视觉映射的散点图

视觉映射不仅可以应用于颜色,还可以应用于点的大小。通过点的大小变化,我们可以直观地展示第三个维度的数据。下面是一个带视觉映射大小的散点图实现:

适用场景:需要展示数据点的重要性或强度差异时,大小视觉映射可以提供直观的比较。
视觉映射不仅可以应用于颜色,还可以应用于点的大小。通过点的大小变化,我们可以直观地展示第三个维度的数据。下面是一个带视觉映射大小的散点图实现:

# 导入必要的模块
from pyecharts import options as opts 
from pyecharts.charts import Scatter 
from pyecharts.faker import Faker # 创建散点图实例
c = (Scatter() .add_xaxis(Faker.choose())  # 使用Faker库生成x轴数据.add_yaxis("商家A", Faker.values())  # 添加商家A的y轴数据.add_yaxis("商家B", Faker.values())  # 添加商家B的y轴数据# 设置全局选项.set_global_opts(title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),  # 设置标题visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),  # 设置视觉映射为大小) 
)
# 在Notebook中渲染图表
c.render_notebook()

代码详解

  1. 导入模块:导入了optionsScatterFaker模块。

  2. 数据准备:使用Faker.choose()生成x轴数据,Faker.values()生成y轴数据。

  3. 添加数据系列

    • add_xaxis:添加x轴数据
    • add_yaxis:添加两组y轴数据,分别对应"商家A"和"商家B"
  4. 全局配置

    • title_opts:设置图表标题为"Scatter-VisualMap(Size)"
    • visualmap_opts:设置视觉映射为大小类型(type_="size"),最大值为150,最小值为20

通过视觉映射大小,我们可以根据数据值的大小来调整散点的大小,从而在二维平面上展示三维数据。这种方式特别适合展示数据的分布密度和数值大小关系。
在这里插入图片描述

http://www.dtcms.com/a/348809.html

相关文章:

  • 2020/12 JLPT听力原文 问题二 5番
  • 【网络运维】Shell 脚本编程:case 条件语句
  • 【大语言模型 18】Vision Transformer革命解析:图像理解的范式突破与架构创新
  • VsCode使用SFTP连接Linux
  • 油雾干扰下误报率↓76%!陌讯动态感知算法在卸油作业安全识别中的实战突破
  • Java:HashSet的使用
  • 【MySQL】CRUD基础详解
  • 基于 Redis + JWT 的跨系统身份共享方案
  • HTTP数据之旅:一个网络请求的完整冒险
  • Unity的Cursor.lockState
  • 油雾环境下漏检率↓79%!陌讯多模态检测算法在加油站智能巡检的落地实践
  • VMware Workstation 不可恢复错误:(vcpu-0)
  • 强反射场景漏检率↓89%!陌讯动态感知算法在护目镜合规检测的实战解析
  • 二叉树学习笔记
  • MyBatis 和 MyBatis-Plus对比
  • 【GEE+Python 实战】用 Sentinel-2 监测 2024 年研究区 NDVI 变化(附完整源码与避坑指南)
  • 深入解析十大经典排序算法原理与实现
  • 理想汽车智驾方案介绍 2|MindVLA 方案详解
  • Java 编译器的世界:前端、JIT 与 AOT 的秘密:详解 Java 的编译过程与编译器生态
  • 秦始皇在位时的重要贡献
  • 室联人形机器人:家政服务任务结构化、技术要点、深入应用FPGA的控制系统框架设计(整合版A)
  • Redis 启动的三种方式:从基础到实战配置指南
  • WSL-linux部署IndexTTS 记录(含本地 CUDA/cuDNN 编译依赖说明)
  • 深度剖析Spring AI源码(二):Model抽象层 - “驯服”天下AI的“紧箍咒”
  • 《Linux 网络编程二:UDP 与 TCP 的差异、应用及问题应对》
  • Grafana k6 性能测试
  • golang5字符串
  • Linux驱动之DMA(三)
  • 强光干扰下漏检率↓78%!陌讯动态决策算法在智慧交通违停检测的实战优化
  • 自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信