Pyecharts炫酷散点图构建指南【第50篇—python:炫酷散点图】

news2024/9/28 19:22:23

文章目录

  • Pyecharts炫酷散点图构建指南
    • 引言
    • 安装Pyecharts
    • 基础散点图
    • 自定义散点图样式
    • 渐变散点图
    • 动态散点图
    • 高级标注散点图
    • 多系列散点图
    • 3D散点图
    • 时间轴散点图
    • 笛卡尔坐标系下的极坐标系散点图
  • 总结:

Pyecharts炫酷散点图构建指南

引言

在数据可视化领域,散点图是一种常用而强大的工具,用于展示两个变量之间的关系。Pyecharts是一个基于Echarts的Python可视化库,它提供了丰富的图表类型,包括了炫酷的散点图。本文将介绍如何使用Pyecharts绘制多种炫酷的散点图,包括参数说明和实际代码示例。

安装Pyecharts

在开始之前,首先需要安装Pyecharts库。可以使用以下命令进行安装:

pip install pyecharts

基础散点图

首先,让我们从一个基础的散点图开始。以下是一个简单的示例代码:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 数据准备
data = [
    [10, 20],
    [20, 30],
    [30, 40],
    [40, 50],
    [50, 60],
]

# 绘制基础散点图
scatter = (
    Scatter()
    .add_xaxis(xaxis_data=[item[0] for item in data])
    .add_yaxis(series_name="scatter", y_axis=[item[1] for item in data])
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="基础散点图"))
)

# 渲染图表
scatter.render("basic_scatter.html")

在这个例子中,我们使用了Scatter类来创建一个散点图,通过add_xaxisadd_yaxis方法设置x轴和y轴的数据。可以通过set_global_opts方法设置全局选项,例如图表标题。

image-20240202144635054

自定义散点图样式

Pyecharts允许我们自定义散点图的样式,包括点的颜色、大小和形状。以下是一个自定义散点图样式的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 数据准备
data = [
    [10, 20, 30],
    [20, 30, 40],
    [30, 40, 50],
    [40, 50, 60],
    [50, 60, 70],
]

# 绘制自定义散点图样式
scatter = (
    Scatter()
    .add_xaxis(xaxis_data=[item[0] for item in data])
    .add_yaxis(
        series_name="scatter",
        y_axis=[item[1] for item in data],
        symbol="circle",  # 设置点的形状
        symbol_size=20,   # 设置点的大小
        itemstyle_opts=opts.ItemStyleOpts(color="red"),  # 设置点的颜色
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="自定义散点图样式"))
)

# 渲染图表
scatter.render("custom_style_scatter.html")

在这个例子中,我们通过symbol参数设置点的形状,通过symbol_size参数设置点的大小,通过itemstyle_opts参数设置点的颜色。

渐变散点图

渐变散点图可以通过颜色的深浅来表达数据的变化程度。以下是一个渐变散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 数据准备
data = [
    [10, 20, 30],
    [20, 30, 40],
    [30, 40, 50],
    [40, 50, 60],
    [50, 60, 70],
]

# 绘制渐变散点图
scatter = (
    Scatter()
    .add_xaxis(xaxis_data=[item[0] for item in data])
    .add_yaxis(
        series_name="scatter",
        y_axis=[item[1] for item in data],
        symbol_size=20,
        itemstyle_opts=opts.ItemStyleOpts(
            color=opts.ColorMappingType.LINEAR,
            color_mapping=[(0, 'blue'), (50, 'green'), (70, 'red')]
        ),
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="渐变散点图"))
)

# 渲染图表
scatter.render("gradient_scatter.html")

在这个例子中,我们通过itemstyle_opts参数的color_mapping设置渐变颜色,其中(0, 'blue')表示数值为0时的颜色为蓝色,(50, 'green')表示数值为50时的颜色为绿色,以此类推。

动态散点图

动态散点图是一种展示随时间变化的数据分布的图表。下面是一个动态散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 模拟时间序列数据
time_series_data = [
    [(10, 20), 0],
    [(20, 30), 1],
    [(30, 40), 2],
    [(40, 50), 3],
    [(50, 60), 4],
]

# 绘制动态散点图
scatter = (
    Scatter()
    .add_xaxis(xaxis_data=[item[0][0] for item in time_series_data])
    .add_yaxis(
        series_name="scatter",
        y_axis=[item[0][1] for item in time_series_data],
        symbol_size=20,
        symbol="circle",
        animation_opts=opts.AnimationOpts(
            animation_delay=1000,  # 设置动画延迟时间
            animation_easing="elasticOut",  # 设置动画缓动效果
        ),
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="动态散点图"))
)

# 渲染图表
scatter.render("dynamic_scatter.html")

在这个例子中,我们通过animation_opts参数设置了动画的延迟时间和缓动效果,使得散点图在时间上呈现动态变化。

高级标注散点图

有时候,我们希望在散点图中对特定点进行标注,以突出重要的数据。以下是一个高级标注散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 数据准备
data = [
    {"value": [10, 20], "symbol": "circle", "name": "A"},
    {"value": [20, 30], "symbol": "rect", "name": "B"},
    {"value": [30, 40], "symbol": "triangle", "name": "C"},
    {"value": [40, 50], "symbol": "diamond", "name": "D"},
    {"value": [50, 60], "symbol": "arrow", "name": "E"},
]

# 绘制高级标注散点图
scatter = (
    Scatter()
    .add_xaxis(xaxis_data=[item["value"][0] for item in data])
    .add_yaxis(
        series_name="scatter",
        y_axis=[item["value"][1] for item in data],
        symbol_size=20,
        symbol=opts.GraphNode().symbol,  # 设置节点的形状
        itemstyle_opts=opts.ItemStyleOpts(color="red"),  # 设置点的颜色
        label_opts=opts.LabelOpts(
            is_show=True,  # 显示标签
            formatter="{b}",  # 标签格式
            position="right",  # 标签位置
        ),
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="高级标注散点图"))
)

# 渲染图表
scatter.render("advanced_annotation_scatter.html")

在这个例子中,我们通过传入包含每个点详细信息的字典列表,可以分别设置每个点的形状、颜色和标签等属性。

image-20240202144703500

多系列散点图

有时候,我们需要在同一张图上展示多个数据系列的散点图,以便更好地比较它们之间的关系。以下是一个多系列散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 数据准备
data_series1 = [[10, 20], [20, 30], [30, 40], [40, 50], [50, 60]]
data_series2 = [[15, 25], [25, 35], [35, 45], [45, 55], [55, 65]]

# 绘制多系列散点图
scatter = (
    Scatter()
    .add_xaxis(xaxis_data=[item[0] for item in data_series1])
    .add_yaxis(
        series_name="Series 1",
        y_axis=[item[1] for item in data_series1],
        symbol_size=20,
    )
    .add_xaxis(xaxis_data=[item[0] for item in data_series2])
    .add_yaxis(
        series_name="Series 2",
        y_axis=[item[1] for item in data_series2],
        symbol_size=20,
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="多系列散点图"))
)

# 渲染图表
scatter.render("multi_series_scatter.html")

在这个例子中,我们通过调用add_xaxisadd_yaxis方法分别添加两个数据系列,通过series_name参数为每个系列命名,使其在图例中显示。

3D散点图

如果数据具有三个维度,我们可以使用3D散点图来更直观地展示数据分布。以下是一个3D散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter3D

# 数据准备
data_3d = [[10, 20, 30], [20, 30, 40], [30, 40, 50], [40, 50, 60], [50, 60, 70]]

# 绘制3D散点图
scatter_3d = (
    Scatter3D()
    .add_xyz(
        xaxis_data=[item[0] for item in data_3d],
        yaxis_data=[item[1] for item in data_3d],
        zaxis_data=[item[2] for item in data_3d],
        symbol_size=20,
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="3D散点图"))
)

# 渲染图表
scatter_3d.render("3d_scatter.html")

在这个例子中,我们使用了Scatter3D类来创建3D散点图,并通过add_xyz方法设置x、y、z轴的数据。可以通过调整symbol_size参数来控制点的大小。

时间轴散点图

时间轴散点图是一种能够展示随时间推移而变化的数据关系的图表。以下是一个时间轴散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter, Timeline

# 模拟时间序列数据
timeline_data = {
    "time1": [[10, 20], [20, 30], [30, 40], [40, 50], [50, 60]],
    "time2": [[15, 25], [25, 35], [35, 45], [45, 55], [55, 65]],
    "time3": [[18, 28], [28, 38], [38, 48], [48, 58], [58, 68]],
}

# 创建时间轴
timeline = Timeline()

# 绘制时间轴散点图
for time, data in timeline_data.items():
    scatter = (
        Scatter()
        .add_xaxis(xaxis_data=[item[0] for item in data])
        .add_yaxis(
            series_name="Series",
            y_axis=[item[1] for item in data],
            symbol_size=20,
        )
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(title_opts=opts.TitleOpts(title=f"时间轴散点图 - {time}"))
    )
    timeline.add(scatter, time)

# 渲染图表
timeline.render("timeline_scatter.html")

在这个例子中,我们使用Timeline类创建了一个时间轴,并在每个时间点上绘制了一个散点图。通过调整timeline_data字典中的数据,可以灵活地展示不同时间点的数据分布。

image-20240202144857748

笛卡尔坐标系下的极坐标系散点图

在某些场景下,我们可能需要在极坐标系下绘制散点图,以更好地表达数据之间的关系。以下是一个在笛卡尔坐标系下的极坐标系散点图的示例:

from pyecharts import options as opts
from pyecharts.charts import Scatter

# 数据准备
data_polar = [
    [10, 20],
    [20, 30],
    [30, 40],
    [40, 50],
    [50, 60],
]

# 绘制笛卡尔坐标系下的极坐标系散点图
scatter_polar = (
    Scatter()
    .add_xaxis(xaxis_data=[item[0] for item in data_polar])
    .add_yaxis(
        series_name="scatter",
        y_axis=[item[1] for item in data_polar],
        symbol_size=20,
        coordinate_system="polar",  # 设置坐标系为极坐标系
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="笛卡尔坐标系下的极坐标系散点图"))
)

# 渲染图表
scatter_polar.render("polar_scatter.html")

在这个例子中,我们通过coordinate_system参数将坐标系设置为极坐标系。这使得散点图在极坐标系下展示,适用于展示循环或周期性的数据关系。

image-20240202144949219

总结:

本文介绍了使用Pyecharts库绘制多种炫酷散点图的方法,包括基础散点图、自定义样式、渐变散点图、动态散点图、高级标注散点图、多系列散点图、3D散点图、时间轴散点图以及在笛卡尔坐标系下的极坐标系散点图。通过这些示例,我们可以掌握如何使用Pyecharts库的不同功能来灵活绘制符合特定需求的散点图。

在实际应用中,根据数据的特点和分析目的,选择合适的散点图类型和调整参数,能够使得数据更为清晰易懂。例如,动态散点图适用于展示随时间变化的数据,而多系列散点图用于比较不同数据系列之间的关系,时间轴散点图则能够展示随时间推移的数据变化趋势。

Pyecharts库提供了丰富的参数和功能,可以满足各种散点图的绘制需求。通过本文的学习,读者可以更加熟练地使用Pyecharts库,制作出更加炫酷且具有信息传递力的散点图,为数据分析和可视化工作提供有力支持。希望本文对使用Pyecharts绘制散点图的实践有所启发,读者能够在具体项目中灵活运用这些技术。

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

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

相关文章

一些整洁代码的原则

1. 改善if判断 当代码中出现大量防卫代码的时候(Guard Code),需要考虑是否可以改造成fail fast的模式完成。 但是给出的建议是,不要过分使用防卫代码 2. 无用代码,just delete it! 作者给出结论的前提是&…

Java常用

文章目录 基础基础数据类型内部类Java IOIO多路复用重要概念 Channel **通道**重要概念 Buffer **数据缓存区**重要概念 Selector **选择器** 关键字final 元注解常用接口异常处理ErrorException JVM与虚拟机JVM内存模型本地方法栈虚拟机栈 Stack堆 Heap方法区 Method Area (JD…

C#拆分字符串,正则表达式Regex.Split 方法 vs String.Split 方法

目录 一、使用的方法 1.使用Split(String, String)方法 2.String.Split 方法 二、源代码 1.源码 2.生成效果 使用正则表达式可以拆分指定的字符串。同样地,使用字符串对象的Split方法也可以实现此功能。使用字符串对象的Split方法可以根据用户选择的拆分条件&…

2024年【A特种设备相关管理(电梯)】考试总结及A特种设备相关管理(电梯)模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 A特种设备相关管理(电梯)考试总结是安全生产模拟考试一点通生成的,A特种设备相关管理(电梯)证模拟考试题库是根据A特种设备相关管理(电梯&#x…

操作系统基础:虚拟内存【上】

🌈个人主页:godspeed_lucip 🔥 系列专栏:OS从基础到进阶 🐹1 虚拟内存的基本概念🦓1.1 总览🦓1.2 传统存储管理方式的缺点🦓1.3 局部性原理🦓1.4 虚拟内存🦝1…

spring boot 使用 Kafka

一、Kafka作为消息队列的好处 高吞吐量:Kafka能够处理大规模的数据流,并支持高吞吐量的消息传输。 持久性:Kafka将消息持久化到磁盘上,保证了消息不会因为系统故障而丢失。 分布式:Kafka是一个分布式系统&#xff0c…

Swift Vapor 教程(查询数据、插入数据)

上一篇简单写了 怎么创建 Swift Vapor 项目以及在开发过程中使用到的软件。 这一篇写一个怎么在创建的项目中创建一个简单的查询数据和插入数据。 注:数据库配置比较重要 先将本地的Docker启动起来,用Docker管理数据库 将项目自己创建的Todo相关的都删掉…

TQ15EG开发板教程:在VIVADO2023.1 以及VITIS环境下 检测DDR4

打开VIVADO2023.1 创建一个新的工程,设置工程名称和地址 选择RTL工程,勾选不添加文件 搜索15eg,选择xqzu15eg-ffrb1156-2-i 完成创建工程 添加设计模块 设置模块名称 在模块中添加mpsoc器件 双击器件进行配置 若有配置文件预设可以直接导入配…

ChatGPT的探索与实践-应用篇

这篇文章主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程,文末会介绍如何与618大促实际的业务相结合,来提升应用价值。全是干货,且本文所有代码和脚本都是利用GPT生成的,请放心食用。 场景一&…

Windows10 安装 OpenSSH 配置 SFTP服务器

1、下载 https://github.com/PowerShell/Win32-OpenSSH/releases 2、默认安装 3、创建用户 4、修改配置文件 C:\ProgramData\ssh\sshd_config# 最后一行后面加入 ForceCommand internal-sftp# 设置用户登录后默认目录 Match User sftpuser ChrootDirectory C:\SFTP# Disable…

(CVPR-2021)RepVGG:让 VGG 风格的 ConvNet 再次伟大

RepVGG:让 VGG 风格的 ConvNet 再次伟大 Title:RepVGG: Making VGG-style ConvNets Great Again paper是清华发表在CVPR 2021的工作 paper链接 Abstract 我们提出了一种简单但功能强大的卷积神经网络架构,它具有类似 VGG 的推理时间主体&…

自学网安-IIS服务器

部署环境:win2003 配置环境:winxp ip:10.1.1.2 win2003 ip:10.1.1.1 开始安装 双击“应用程序服务器” 双击“Internet 信息服务(IIS)” 勾选万维网服务,确定然后下一步 查看端口号;netstat …

vue2学习笔记(2/2)

vue2学习笔记(1/2) vue2学习笔记(2/2) 文章目录 1. 初始化脚手架2. 分析脚手架&render函数文件结构图示及说明main.jsindex.htmlApp.vueSchool.vueStudent.vue 关于不同版本的Vue修改默认配置vue.config.js配置文件 3. ref属…

【数据结构与算法】——单链表的原理及C语言实现

数据结构与算法——链表原理及C语言实现 链表的原理链表的基本属性设计创建一个空链表链表的遍历(显示数据)释放链表内存空间 链表的基本操作设计(增删改查)链表插入节点链表删除节点链表查找节点增删改查测试程序 链表的复杂操作…

当人工智能遇上教育,会擦出怎样的火花?

在这个时代,科技的风暴正以前所未有的速度席卷全球。其中,人工智能,这个被誉为21世纪的“科技之星”,正悄然改变着我们的生活。但是,当人工智能遇上传统教育领域时,你猜会发生什么? 有人说&…

element-ui button 组件源码分享

element-ui button 源码分享,基于对源码的理解,编写一个简单的 demo,主要分三个模块来分享: 一、button 组件的方法。 1.1 在方法这块,button 组件内部通过暴露 click 方法实现,具体如下: 二、…

勇敢的小刺猬

故事名称:《勇敢的小刺猬》 角色: 小明(刺猬)小鸟森林医生邪恶的狐狸 场景:森林 【场景1:森林里的小路上】 小明(边走边哼着歌):今天的阳光真好,真是个适合帮…

盘点那些硬件+项目学习套件:STM32U5单片机开发板及入门常见问题解答

华清远见20岁了~过去3年里,华清远见研发中心针对个人开发板业务,打造了多款硬件项目学习套件,涉及STM32单片机、嵌入式、物联网、人工智能、鸿蒙、ESP32、阿里云IoT等多技术方向。 今天我们来盘点一下,比较受欢迎几款“硬件项目”…

ubuntu22.04安装部署02:禁用显卡更新

一、查看可用显卡驱动 ubuntu-drivers devices 二、查看显卡信息 # -i表示不区分大小写 lspci | grep -i nvidia nvidia-smi 三、查看已安装显卡驱动 cat /proc/driver/nvidia/version 四、锁定显卡升级 使用cuda自带额显卡驱动,居然无法,找到如何锁…