当前位置: 首页 > 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.xdnf.cn/news/1359307.html

相关文章:

  • Trip Footprint旅行足迹App
  • jar包项目自启动设置ubuntu
  • Vue中 this.$emit() 方法详解, 帮助子组件向父组件传递事件
  • Altium Designer 22使用笔记(9)---PCB布局、布线操作
  • 复杂街景误检率↓79%!陌讯时空建模算法在非机动车乱停放检测的实战解析
  • 点播视频预览是怎么做到的?
  • VsCode使用SFTP连接Linux
  • 使用 Golang 的 Gin 框架实现一周极限编程计划:全网 AIGC 项目热点追踪应用
  • MATLAB 与 Simulink 联合仿真:控制系统建模与动态性能优化
  • yggjs_rlayout框架v0.1.2使用教程 02 TechLayout 布局组件
  • 上科大解锁城市建模新视角!AerialGo:从航拍视角到地面漫步的3D城市重建
  • nginx部署goaccess监控
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day12
  • leetcode 1493 删掉一个元素以后全为1的最长子数组
  • mybatis过渡到mybatis-plus过程中需要注意的地方
  • 《Distilling the Knowledge in a Neural Network》论文PDF分享, 2015 年,谷歌提出了 “知识蒸馏” 的概念
  • 06 - spring security角色和权限设置
  • vulnhub-billu_b0x靶机渗透
  • GPT-5国内免费体验
  • k8s下的网络通信之calico与调度
  • sqlite创建数据库,创建表,插入数据,查询数据的C++ demo
  • 最新sa-token的oauth2封装免密和密码登录
  • 【高等数学】第十章 重积分——第一节 二重积分的概念与性质
  • MinIO03-Linux安装
  • Docker安装RocketMQ
  • 征程 6X 常用工具介绍
  • AI大模型应用开发面试:深入解析技术点
  • 每日算法题【链表】:相交链表、环形链表、环形链表II
  • 鸿蒙中点击完成时延分析
  • LeetCode 42.接雨水