Python绘制散点图之可视化神器pyecharts

小满
小满
发布时间:2026-10-15 | 3人浏览过
原创

本文详细介绍如何使用Python库pyecharts绘制散点图。内容涵盖散点图的定义、用途及构成要素,并演示简单散点图、多维数据散点图、带分割线散点图、二维大小散点图、3D散点图、动态涟漪散点图及箭头标志散点图的实现方法,帮助开发者掌握数据可视化的核心技巧。

散点图

什么是散点图?

散点图是数理统计回归分析中,用于展示数据点在直角坐标系平面分布情况的图表。它主要反映因变量随自变量变化的大致趋势,通过这种趋势可以选择合适的函数进行经验分布拟合,从而确定变量间的函数关系。

散点图有什么用处?

  • 1、数据通过图表展示更为直观,在工作汇报等场合能起到事半功倍的效果,使听众更容易接受并理解所处理的数据。
  • 2、散点图属于研究型图表,能够揭示变量之间隐藏的关系,为决策提供重要引导。
  • 3、散点图的核心价值在于发现变量间的关系,这种关系不应简单理解为线性回归。变量间可能存在线性、指数、对数等多种关系,甚至“没有关系”也是一种重要的发现。
  • 4、经过回归分析后,散点图可用于对相关对象进行预测分析,从而支持科学决策,避免模棱两可。例如,医学中的白细胞散点图可为健康检测提供精确分析,为医生的后续判断提供重要技术支持。

散点图的基本构成要素

散点图的主要构成元素包括数据源、横纵坐标轴、变量名以及研究对象。其基本要素是点,即统计的数据,通过观察这些点的分布情况,我们可以洞察变量之间的关系。

通常散点图研究两个变量之间的关系,往往难以满足日常复杂需求。因此,气泡图应运而生,它在散点图基础上增加了变量,通过点的大小或颜色定义第三个变量,提供更丰富的信息。由于图形类似气泡,故得名气泡图。

散点图模板系列

简单散点图

数据量越大,散点图的呈现效果越明显。这也是建模时采用回归拟合的原则:如果数据遵循某种函数关系,可以通过机器学习进行训练,不断迭代以达到最优效果。

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

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],
]
data.sort(key=lambda x: x[0])
x_data = [d[0] for d in data]
y_data = [d[1] for d in data]

(
Scatter(init_opts=opts.InitOpts(width="1200px", height="600px"))
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="",
y_axis=y_data,
symbol_size=20,
label_opts=opts.LabelOpts(is_show=False),
)
.set_series_opts()
.set_global_opts(
xaxis_opts=opts.AxisOpts(
type_="value", splitline_opts=opts.SplitLineOpts(is_show=True)
),
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),
)
.render("简单散点图.html")
)

多维数据散点图

在实际应用场景中,散点图有时因数据过多而显得过于密集。我们可能只需了解某一区域的分布数量。虽然柱状图可以解决部分问题,但散点图能更好地反映区域分布及数量趋势变化,可根据具体业务需求选择使用。

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())
.add_yaxis(
"类别1",
[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="多维度数据"),
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
),
)
.render("多维数据散点图.html")
)
print([list(z) for z in zip(Faker.values(), Faker.choose())])

散点图显示分割线

显示分割线的散点图在实现上与之前类似,主要区别在于坐标轴配置中开启了分割线显示功能。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("A", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="标题"),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
)
.render("分割线.html")
)

散点图凸出大小(二维)

利用二维数据展示每个类别的分布状况,图表可显示多个类别,极大地增强了数据的解释效果。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("1", Faker.values())
.add_yaxis("2", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="标题"),
visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),
)
.render("凸出大小散点图.html")
)

3D散点图展示

动态涟漪散点图

之前的散点图均为静态展示,下面我们将介绍动态散点图的实现方式。

from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
c = (
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis("", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="散点图"))
.render("动态散点图.html")
)

箭头标志散点图

from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
from pyecharts.globals import SymbolType

c = (
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis("", Faker.values(), symbol=SymbolType.ARROW)
.set_global_opts(title_opts=opts.TitleOpts(title="标题"))
.render("箭头动态散点图.html")
)

到此这篇关于Python绘制散点图之可视化神器pyecharts的文章就介绍到这了,更多相关Python绘制散点图内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表