本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
在Pyecharts中,Scatter类的add函数有以下参数:
其中,name、xaxis_data和yaxis_data参数是必需的,其他参数都是可选的。
示例代码:
scatter = Scatter()
scatter.add(
name="散点图",
xaxis_data=[1, 2, 3, 4, 5],
yaxis_data=[10, 20, 30, 40, 50],
symbol_size=10,
label_opts=opts.LabelOpts(formatter="{@[2]}"),
tooltip_opts=opts.TooltipOpts(formatter="{@[2]}"),
itemstyle_opts=opts.ItemStyleOpts(color="red"),
encode={"x": 0, "y": 1},
)
这个例子创建了一个Scatter对象,然后使用add函数添加了一个散点数据系列,指定了x轴和y轴的数据,散点的大小为10,标签格式化为第三个数据,提示框格式化为第三个数据,散点的颜色为红色,数据编码指定x轴数据在第0个位置,y轴数据在第1个位置。
class ScatterItem(
name: Union[str, Numeric] = None, # 数据系列的名称,可以是字符串或数字
value: Union[str, Numeric] = None, # 散点的值,可以是字符串或数字
symbol: Optional[str] = None, # 散点的标记符号,可选参数,默认为None
symbol_size: Union[Sequence[Numeric], Numeric] = None, # 散点的大小,可以是数字或数字序列
symbol_rotate: Optional[Numeric] = None, # 散点的旋转角度,可选参数,默认为None
symbol_keep_aspect: bool = False, # 散点的宽高比是否保持一致,可选参数,默认为False
symbol_offset: Optional[Sequence] = None, # 散点的偏移量,可选参数,默认为None
label_opts: Union[LabelOpts, dict, None] = None, # 散点的标签配置项,可以是LabelOpts对象、字典或None
itemstyle_opts: Union[ItemStyleOpts, dict, None] = None, # 散点的图形样式配置项,可以是ItemStyleOpts对象、字典或None
tooltip_opts: Union[TooltipOpts, dict, None] = None, # 散点的提示框配置项,可以是TooltipOpts对象、字典或None
)
这个类是用于表示散点图中的每个散点数据项。参数的具体含义已在注释中进行了解释。
要使用Pyecharts绘制普通气泡图,可以按照以下步骤进行链式写法的绘制:
from pyecharts import options as opts
from pyecharts.charts import Scatter
scatter = Scatter().set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图")
)
scatter.add_xaxis(x_data) # 设置x轴数据
scatter.add_yaxis("", y_data) # 设置y轴数据
scatter.set_series_opts(
label_opts=opts.LabelOpts(is_show=False), # 不显示标签
itemstyle_opts=opts.ItemStyleOpts(color="rgba(255, 0, 0, 0.6)"), # 设置气泡颜色
symbol_size=20 # 设置气泡大小
)
# 渲染图表
scatter.render_notebook()
scatter.render("scatter.html")
完整代码示例:
from pyecharts import options as opts
from pyecharts.charts import Scatter
# 数据
x_data = [1, 2, 3, 4, 5]
y_data = [10, 20, 30, 40, 50]
# 创建Scatter实例
scatter = Scatter().set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图")
)
# 添加数据系列
scatter.add_xaxis(x_data)
scatter.add_yaxis("", y_data)
# 设置气泡的大小和颜色
scatter.set_series_opts(
label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(color="rgba(255, 0, 0, 0.6)"),
symbol_size=20
)
# 渲染图表
scatter.render_notebook()
scatter.render("scatter.html")
# 导入需要的模块
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
# 创建Scatter对象
scatter = (
Scatter()
# 添加x轴数据
.add_xaxis(Faker.choose())
# 添加y轴数据,系列名称为"商家A"
.add_yaxis("商家A", Faker.values())
# 添加y轴数据,系列名称为"商家B"
.add_yaxis("商家B", Faker.values())
# 设置全局配置项
.set_global_opts(
# 设置标题
title_opts=opts.TitleOpts(title="多维度散点图"),
# 设置视觉映射配置项,类型为"size",最大值为150,最小值为20
visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),
)
)
# 在Jupyter Notebook中渲染图表
scatter.render_notebook()
通过散点图与分割线相互结合:
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Scatter
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100, 4)
# 使用链式写法绘制散点图
scatter = (
Scatter()
.add_xaxis(list(range(100)))
.add_yaxis("A", data[:, 0].tolist())
.add_yaxis("B", data[:, 1].tolist())
.add_yaxis("C", data[:, 2].tolist())
.add_yaxis("D", data[:, 3].tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="多维度散点图"),
xaxis_opts=opts.AxisOpts(name="Index"),
yaxis_opts=opts.AxisOpts(name="Value"),
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
# 添加分割线
line = (
Scatter()
.add_xaxis(list(range(100)))
.add_yaxis("Line", [0] * 100, label_opts=opts.LabelOpts(is_show=False))
.set_series_opts(
symbol_size=0,
linestyle_opts=opts.LineStyleOpts(type_="dashed", color="red"),
label_opts=opts.LabelOpts(is_show=False),
)
)
scatter.render_notebook()
# 导入所需的类和函数
from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
# 创建 EffectScatter 对象,并设置 x 轴数据和 y 轴数据
c = (
EffectScatter()
.add_xaxis(Faker.choose()) # 添加 x 轴数据,这里使用了 Faker.choose() 生成随机数据
.add_yaxis("", Faker.values()) # 添加 y 轴数据,这里使用了 Faker.values() 生成随机数据
.set_global_opts(title_opts=opts.TitleOpts(title="动态涟漪散点图")) # 设置全局配置,标题为"动态涟漪散点图"
)
# 在 Jupyter Notebook 中展示
c.render_notebook()
在下面的代码中,首先创建了一个Scatter对象,然后通过set_global_opts()方法设置了图表的标题和大小,以及图表的颜色映射范围。接下来,通过add_xaxis()方法设置x轴的数据,通过add_yaxis()方法分别添加了四个系列的散点图数据,并设置了不同的形状和大小。
from pyecharts import options as opts
from pyecharts.charts import Scatter
# 创建散点图对象
scatter = Scatter()
# 设置图表标题和大小
scatter.set_global_opts(
title_opts=opts.TitleOpts(title="不同形状散点图"),
visualmap_opts=opts.VisualMapOpts(type_="size", max_=50, min_=20),
legend_opts=opts.LegendOpts(pos_right="10%", pos_bottom="15%"),
)
# 添加散点图数据并设置样式
scatter.add_xaxis(['A', 'B', 'C', 'D', 'E'])
scatter.add_yaxis("圆形", [10, 20, 30, 40, 50], symbol_size=10)
scatter.add_yaxis("矩形", [20, 30, 40, 50, 60], symbol='rect', symbol_size=15)
scatter.add_yaxis("三角形", [30, 40, 50, 60, 70], symbol='triangle', symbol_size=20)
scatter.add_yaxis("星形", [40, 50, 60, 70, 80], symbol='star', symbol_size=25)
# 在 Jupyter Notebook 中展示
scatter.render_notebook()
运行结果:
在scatter.add_yaxis()函数中,symbol参数用于设置散点图的形状。下面是symbol参数的全部参数说明:
另外,symbol参数还可以是一个自定义的路径字符串,表示使用自定义的形状图片,例如’svg://path/to/custom_symbol.svg’。
在使用scatter.add_yaxis()函数时,可以根据需要选择合适的形状参数来设置散点图的形状。
Scatter3D
类和configure
函数。示例代码如下:from pyecharts.charts import Scatter3D
from pyecharts import options as opts
from pyecharts.render import notebook
import random
Scatter3D
类创建3D散点图,设置散点的属性,如位置、大小、颜色等。示例代码如下:scatter_data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)]
scatter3d = (
Scatter3D()
.add("", scatter_data)
.set_global_opts(
title_opts=opts.TitleOpts(title="3D散点图"),
visualmap_opts=opts.VisualMapOpts(max_=10),
)
)
在上述代码中,scatter_data
是一个包含多个散点坐标的列表,每个散点坐标由三个值表示(x、y、z)。
notebook.render_notebook
函数将图表输出到Jupyter Notebook中。示例代码如下:notebook.render_notebook(scatter3d)
from pyecharts.charts import Scatter3D
from pyecharts import options as opts
import random
scatter_data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)]
scatter3d = (
Scatter3D()
.add("", scatter_data)
.set_global_opts(
title_opts=opts.TitleOpts(title="3D散点图"),
visualmap_opts=opts.VisualMapOpts(max_=10),
)
)
scatter3d.render_notebook()
通过以上步骤,就可以使用Pyecharts的链式写法绘制3D散点图并将结果输出到Jupyter Notebook中。图表将直接在Notebook中渲染和显示,无需额外的保存和导出操作。
《ChatGPT时代+powerBI》
本书从ChatGPT等自然语言大模型基础知识讲起,重点介绍了ChatGPT等语言大模型在生活中的实际应用,让每一个人都能了解未来的生活和工作。
本书通过实际案例和操作技巧,使读者能够快速上手并灵活运用ChatGPT技术,提升职场竞争力,以通俗易懂的语言解释ChatGPT的原理和应用,即使是职场新手也能轻松掌握。
同时结合Excel Home全新讲授的《Power BI数据分析与可视化实战》,用chatGPT使读者可以从烦琐的数据处理和报表编制中解脱,快速从海量数据中抽取关键信息并制作令人惊艳的交互式商业报告
抽奖送书老规矩(不点赞收藏中奖无效):注意记得关注博主不然中奖了还不知道!!!
- 1. 点赞收藏文章
- 2. 评论区留言:人生苦短,我用Python!!!(留言才能进入奖池,每人最多留言三条)
- 3. 周六八点爬虫抽奖5人
- 《chatGPT时代全能应用一本通》 当当购买链接 :http://product.dangdang.com/29564315.html
- 《Power BI数据分析与可视化实战》 当当购买链接:http://product.dangdang.com/29473790.html