Pyecharts炫酷散点图构建指南【第50篇—python:炫酷散点图】
文章目录
- 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_xaxis
和add_yaxis
方法设置x轴和y轴的数据。可以通过set_global_opts
方法设置全局选项,例如图表标题。
自定义散点图样式
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")
在这个例子中,我们通过传入包含每个点详细信息的字典列表,可以分别设置每个点的形状、颜色和标签等属性。
多系列散点图
有时候,我们需要在同一张图上展示多个数据系列的散点图,以便更好地比较它们之间的关系。以下是一个多系列散点图的示例:
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_xaxis
和add_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
字典中的数据,可以灵活地展示不同时间点的数据分布。
笛卡尔坐标系下的极坐标系散点图
在某些场景下,我们可能需要在极坐标系下绘制散点图,以更好地表达数据之间的关系。以下是一个在笛卡尔坐标系下的极坐标系散点图的示例:
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
参数将坐标系设置为极坐标系。这使得散点图在极坐标系下展示,适用于展示循环或周期性的数据关系。
总结:
本文介绍了使用Pyecharts库绘制多种炫酷散点图的方法,包括基础散点图、自定义样式、渐变散点图、动态散点图、高级标注散点图、多系列散点图、3D散点图、时间轴散点图以及在笛卡尔坐标系下的极坐标系散点图。通过这些示例,我们可以掌握如何使用Pyecharts库的不同功能来灵活绘制符合特定需求的散点图。
在实际应用中,根据数据的特点和分析目的,选择合适的散点图类型和调整参数,能够使得数据更为清晰易懂。例如,动态散点图适用于展示随时间变化的数据,而多系列散点图用于比较不同数据系列之间的关系,时间轴散点图则能够展示随时间推移的数据变化趋势。
Pyecharts库提供了丰富的参数和功能,可以满足各种散点图的绘制需求。通过本文的学习,读者可以更加熟练地使用Pyecharts库,制作出更加炫酷且具有信息传递力的散点图,为数据分析和可视化工作提供有力支持。希望本文对使用Pyecharts绘制散点图的实践有所启发,读者能够在具体项目中灵活运用这些技术。
相关文章:

Pyecharts炫酷散点图构建指南【第50篇—python:炫酷散点图】
文章目录 Pyecharts炫酷散点图构建指南引言安装Pyecharts基础散点图自定义散点图样式渐变散点图动态散点图高级标注散点图多系列散点图3D散点图时间轴散点图笛卡尔坐标系下的极坐标系散点图 总结: Pyecharts炫酷散点图构建指南 引言 在数据可视化领域,…...

关于爬取所有哔哩哔哩、任意图片、所有音乐、的python脚本语言-Edge浏览器插件 全是干货!
这些都是现成的并且实时更新的!从次解放双手! 首先有自己的edge浏览器基本上都有并且找到插件选项 1.哔哩哔哩视频下载助手(爬取哔哩哔哩视频) bilibili哔哩哔哩视频下载助手 - Microsoft Edge Addons 下面是效果: 2.图…...

压力测试工具-Jmeter使用总结
目录 一.前言 二.线程组 三.线程组的组件 四.线程组-HTTP请求 1、JSON提取器 2、XPATH提取器 3、正则表达式提取器 五.线程组-断言 1、响应断言 2、JSON断言 六.创建测试 1.创建线程组 2.配置元件 3.构造HTTP请求 4.添加HTTP请求头 5.添加断言 6.添加查看结果树…...
[cmake]CMake Error: Could not create named generator Visual Studio 16 2019解决方法
配置flycv时,cmake以下代码会报错第二行的错误,网上解决方法为第三行代码 cmake .. -G "Visual Studio 16 2019 Win64" CMake Error: Could not create named generator Visual Studio 16 2019 cmake .. -G "Visual Studio 16 2019"…...

2024美赛数学建模D题思路分析 - 大湖区水资源问题
1 赛题 问题D:大湖区水资源问题 背景 美国和加拿大的五大湖是世界上最大的淡水湖群。这五个湖泊和连接的水道构成了一个巨大的流域,其中包含了这两个国家的许多大城市地区,气候和局部天气条件不同。 这些湖泊的水被用于许多用途࿰…...

2024 高级前端面试题之 HTTP模块 「精选篇」
该内容主要整理关于 HTTP模块 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 HTTP模块精选篇 1. HTTP 报文的组成部分2. 常见状态码3. 从输入URL到呈现页面过程3.1 简洁3.2 详细 4. TCP、UDP相关5. HTTP2相关6. https相关7. WebSocket的…...

【Linux C | 网络编程】netstat 命令图文详解 | 查看网络连接、查看路由表、查看统计数据
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...
Python爬虫存储库安装
如果你还没有安装好MySQL、MongoDB、Redis 数据库,请参考这篇文章进行安装: Windows、Linux、Mac数据库的安装(mysql、MongoDB、Redis)-CSDN博客 存储库的安装 上节中,我们介绍了几个数据库的安装方式,但…...
用函数求最小公倍数和最大公约数(c++题解)
题目描述 输入两个正整数m和n,求其最大公约数和最小公倍数。 提示,求最大公约数用一个函数实现。本题求最大公约数必须用高效算法,如辗转相除法,朴素算法要超时。 输入格式 第1行:两个非整数,值在0&…...

鲜花销售|鲜花销售小程序|基于微信小程序的鲜花销售系统设计与实现(源码+数据库+文档)
鲜花销售小程序目录 目录 基于微信小程序的鲜花销售系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、前台功能模块 2、后台功能模块 (1) 后台登录 (2) 管理员功能模块 用户管理 商家管理 鲜花信息管理 鲜花分类管理 管理员管理 系统管理 (3) 商家功…...

三.Linux权限管控 1-5.Linux的root用户用户和用户组查看权限控制信息chmod命令chown命令
目录 三.Linux权限管控 1.Linux的root用户 root用户(超级管理员) su和exit命令 sudo命令 为普通用户配置sudo认证 三.Linux权限管控 2.用户和用户组 用户,用户组 用户组管理 用户管理 getent---查看系统中的用户 三.Linux权限管控…...

Jmeter学习系列之四:测试计划元素介绍
测试计划元素 JMeter包含各种相互关联但为不同目的而设计的元素。在开始使用JMeter之前,最好先了解一下JMeter的一些主要元素。 注意:测试计划包含至少一个线程组。 以下是JMeter的一些主要组件: 测试计划(Plan)线程组(Thread Group)控制器…...

LeetCode.1686. 石子游戏 VI
题目 题目链接 分析 本题采取贪心的策略 我们先假设只有两个石头a,b, 对于 Alice 价值分别为 a1,a2, 对于 Bob 价值而言价值分别是 b1,b2 第一种方案是 Alice取第一个,Bob 取第二个,Alice与Bob的价值差是 c1 a1 - b1…...
【硬件产品经理】锂电池充电时间怎么计算?
目录 前言 电池容量 充电器功率 电能转换效率 充电时间计算 作者简介<...

Oracle篇—普通表迁移到分区表(第五篇,总共五篇)
☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…...
作为开发人的我们,怎么可以不了解这些?
必备技能: 文章结尾处,有资源获取方式 Spring Spring是一个轻量级的Java框架,它可以用于开发各种Java应用程序。Spring提供了丰富的功能,包括IoC容器、AOP、事务管理、Web开发、安全管理等等。Spring的IoC容器可以…...

基于 Echarts 的 Python 图表库:Pyecahrts交互式的日历图和3D柱状图
文章目录 概述一、日历图和柱状图介绍1. 日历图基本概述2. 日历图使用场景3. 柱状图基本概述4. 柱状图使用场景 二、代码实例1. Pyecharts绘制日历图2. Pyecharts绘制2D柱状图3. Pyecharts绘制3D柱状图 总结 概述 本文将引领读者深入了解数据可视化领域中的两个强大工具&#…...

web应用课——(第四讲:中期项目——拳皇)
代码AC Git地址:拳皇——AC Git链接...

Python爬虫http基本原理
Python爬虫逆向系列(更新中):http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本节中,我们会详细了解 HTTP 的基本原理,了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一…...

iOS17使用safari调试wkwebview
isInspectable配置 之前开发wkwebview的页面的时候一直使用safari调试,毕竟jssdk交互还是要用这个比较方便,虽说用一个脚本插件没问题。不过还是不太方便。 但是这个功能突然到了iOS17之后发现不能用了,还以为又是苹果搞得bug,每…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...