700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 100天精通Python(可视化篇)——第94天:Pyecharts绘制多种炫酷散点图(参数说明+代码实战)

100天精通Python(可视化篇)——第94天:Pyecharts绘制多种炫酷散点图(参数说明+代码实战)

时间:2020-01-25 17:52:57

相关推荐

100天精通Python(可视化篇)——第94天:Pyecharts绘制多种炫酷散点图(参数说明+代码实战)

文章目录

专栏导读一、Scatter(散点图)1. add函数2. 数据项 二、基础气泡图三、多维度散点图四、添加分割线五、动态涟漪散点图六、不同形状散点图七、3D散点图

专栏导读

🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:/yuan035055/category_11466020.html

优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

一、Scatter(散点图)

1. add函数

在Pyecharts中,Scatter类的add函数有以下参数:

name:str,数据系列的名称。xaxis_data:Sequence,x轴的数据。yaxis_data:Sequence,y轴的数据。symbol_size:Union[int, Sequence],散点的大小。如果为int类型,则所有散点的大小都相同;如果为Sequence类型,则可以为每个散点指定不同的大小。label_opts:LabelOpts,散点的标签配置项。tooltip_opts:TooltipOpts,散点的提示框配置项。itemstyle_opts:ItemStyleOpts,散点的图形样式配置项。encode:Dict,数据编码配置项。用于指定x轴和y轴的数据在数据源中的位置,例如:{“x”: 0, “y”: 1}。

其中,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个位置。

2. 数据项

class ScatterItem(name: Union[str, Numeric] = None, # 数据系列的名称,可以是字符串或数字value: Union[str, Numeric] = None, # 散点的值,可以是字符串或数字symbol: Optional[str] = None, # 散点的标记符号,可选参数,默认为Nonesymbol_size: Union[Sequence[Numeric], Numeric] = None, # 散点的大小,可以是数字或数字序列symbol_rotate: Optional[Numeric] = None, # 散点的旋转角度,可选参数,默认为Nonesymbol_keep_aspect: bool = False, # 散点的宽高比是否保持一致,可选参数,默认为Falsesymbol_offset: Optional[Sequence] = None, # 散点的偏移量,可选参数,默认为Nonelabel_opts: Union[LabelOpts, dict, None] = None, # 散点的标签配置项,可以是LabelOpts对象、字典或Noneitemstyle_opts: Union[ItemStyleOpts, dict, None] = None, # 散点的图形样式配置项,可以是ItemStyleOpts对象、字典或Nonetooltip_opts: Union[TooltipOpts, dict, None] = None, # 散点的提示框配置项,可以是TooltipOpts对象、字典或None)

这个类是用于表示散点图中的每个散点数据项。参数的具体含义已在注释中进行了解释。

二、基础气泡图

要使用Pyecharts绘制普通气泡图,可以按照以下步骤进行链式写法的绘制:

导入所需模块:

from pyecharts import options as optsfrom pyecharts.charts import Scatter

创建一个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 # 设置气泡大小)

渲染图表,并将结果保存为HTML文件:

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

完整代码示例:

from pyecharts import options as optsfrom 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 Scatterfrom 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,最小值为20visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),))# 在Jupyter Notebook中渲染图表scatter.render_notebook()

运行结果:

四、添加分割线

通过散点图与分割线相互结合:

import numpy as npfrom pyecharts import options as optsfrom 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 optsfrom pyecharts.charts import EffectScatterfrom 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 optsfrom 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参数的全部参数说明:

‘circle’:圆形‘rect’:矩形‘roundRect’:圆角矩形‘triangle’:三角形‘diamond’:菱形‘pin’:水滴形‘arrow’:箭头形‘none’:无形状,即不显示形状,只显示散点

另外,symbol参数还可以是一个自定义的路径字符串,表示使用自定义的形状图片,例如’svg://path/to/custom_symbol.svg’。

在使用scatter.add_yaxis()函数时,可以根据需要选择合适的形状参数来设置散点图的形状。

七、3D散点图

导入所需的类和函数,在代码中导入所需的类和函数,包括Scatter3D类和configure函数。示例代码如下:

from pyecharts.charts import Scatter3Dfrom pyecharts import options as optsfrom pyecharts.render import notebookimport random

创建3D散点图,使用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)。

输出到Jupyter Notebook,使用notebook.render_notebook函数将图表输出到Jupyter Notebook中。示例代码如下:

notebook.render_notebook(scatter3d)

完整代码:

from pyecharts.charts import Scatter3Dfrom pyecharts import options as optsimport randomscatter_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时代全能应用一本通》 当当购买链接 :/29564315.html《Power BI数据分析与可视化实战》 当当购买链接:/29473790.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。