本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
气泡图是一种数据可视化图表,通过在二维坐标系上绘制气泡来展示数据。每个气泡的位置由其在坐标系上的横纵坐标确定,而气泡的大小通常表示第三个维度的数值。
气泡图常用于展示多个数据点之间的关系和趋势。横纵坐标表示两个变量,而气泡的大小表示第三个变量的数值大小。通过观察气泡的位置和大小,可以分析出数据之间的相关性和趋势。
气泡图通常用于展示大量数据,每个气泡代表一个数据点,可以通过不同的颜色或标记来表示不同的类别。同时,在气泡图中还可以添加其他信息,如数据标签、图例等,以增加图表的可读性和信息量。
气泡图适用于各种领域的数据分析,如经济学、市场研究、生物学等。它可以帮助研究人员和决策者更直观地理解数据,发现数据中的规律和趋势,从而做出更准确的决策。
散点图和气泡图都是用于展示离散数据的图表类型,它们的相同点和不同点如下所示:
相同点:
不同点:
总的来说,散点图更简单直观,适用于展示数据点的位置分布情况;而气泡图则更加丰富多样,可以通过符号大小和颜色等来展示更多数据信息,适用于需要展示多维度数据的情况。选择使用哪种图表类型,应根据数据特点和需求来决定。
1、导入所需的库和模块:在Notebook中的代码单元格中导入所需的库和模块。示例代码如下:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
2、生成数据
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
3、创建Scatter对象并设置图表的基本属性:使用链式写法创建Scatter对象,并设置图表的基本属性,例如标题、主题等。示例代码如下:
c = (
Scatter() # 创建Scatter实例
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
)
)
4、添加数据和配置项:使用链式写法添加数据和配置项,例如气泡的大小、颜色等。示例代码如下:
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A' ,y_values, symbol_size=30) # 设置y轴数据和点的大小
5、渲染图表:使用render_notebook()
方法将图表渲染到Jupyter Notebook中。示例代码如下:
c.render_notebook()
完整示例代码如下:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A' ,y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
)
)
c.render_notebook()
通过添加visualmap_opts=opts.VisualMapOpts(max_=5000)
参数设置,max_
的值大小根据数据最大值调整
:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A' ,y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
visualmap_opts=opts.VisualMapOpts(max_=1000), # 气泡按颜色显示
)
)
c.render_notebook()
只需在visualmap_opts=opts.VisualMapOpts()
中添加一个type_="size"
的参数:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A' ,y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
visualmap_opts=opts.VisualMapOpts(type_="size", max_=10000), # 气泡大小根据值大小,气泡按颜色显示
)
)
c.render_notebook()
图片正如我们想象的那样气泡大小根据值大小显示,但是颜色却没有?如果我们两个都想要呢?
(1)将气泡按颜色显示和气泡大小根据值大小type_
参数分别设置:
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000), # 气泡按颜色显示
opts.VisualMapOpts(type_="size", max_=10000) # 气泡大小根据值大小
]
(2)完整代码:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A', y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000), # 气泡按颜色显示
opts.VisualMapOpts(type_="size", max_=10000) # 气泡大小根据值大小
]
)
)
c.render_notebook()
运行结果,但是两个工具框重叠在一起了:
(3)通过分别在opts.VisualMapOpts()
中设置上下pos_top="20"
、pos_bottom="20"
参数设置工具库位置:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A', y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000, pos_top="20"), # 气泡按颜色显示
opts.VisualMapOpts(type_="size", max_=10000, pos_bottom="20") # 气泡大小根据值大小
]
)
)
c.render_notebook()
运行结果:
通过在visualmap_opts=opts.VisualMapOpts()
函数中添加range_color=[]
参数添加自定义颜色:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A', y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置y轴分割线
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000, pos_top="20", range_color=["#00FF00","#FF0000"]), # 气泡按颜色显示,并设置自定义颜色
opts.VisualMapOpts(type_="size", max_=10000, pos_bottom="20") # 气泡大小根据值大小
]
)
)
c.render_notebook()
range_color
参数可以接受一个颜色列表,用于指定颜色范围。你可以根据需要自定义颜色,例如:
["#FF0000", "#00FF00", "#0000FF"]
["rgb(255, 0, 0)", "rgb(0, 255, 0)", "rgb(0, 0, 255)"]
["red", "green", "blue"]
你可以根据自己的需求选择适合的颜色来设置range_color
参数。
在yaxis_opts
中,我们设置了Y轴的类型为"value"(数值轴),并使用axislabel_opts
设置了标签的格式化函数,将数值转换为百分比显示。
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
Scatter() # 创建Scatter实例
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A', y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True), axislabel_opts=opts.LabelOpts(formatter="{value}%")), # 设置y轴分割线
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000, pos_top="20", range_color=["#00FF00","#FF0000"]), # 气泡按颜色显示,并设置自定义颜色
opts.VisualMapOpts(type_="size", max_=10000, pos_bottom="20") # 气泡大小根据值大小
]
)
)
c.render_notebook()
1.、导包将from pyecharts.charts import Scatter
换成:
from pyecharts.charts import EffectScatter
2、创建对象将Scatter()
换成:
EffectScatter()
3、完整代码:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import EffectScatter
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
# Scatter() # 创建Scatter实例
EffectScatter()
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A', y_values, symbol_size=30) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True), axislabel_opts=opts.LabelOpts(formatter="{value}%")), # 设置y轴分割线
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000, pos_top="20", range_color=["#00FF00","#FF0000"]), # 气泡按颜色显示,并设置自定义颜色
opts.VisualMapOpts(type_="size", max_=10000, pos_bottom="20") # 气泡大小根据值大小
]
)
)
c.render_notebook()
运行结果,可以看到动态涟漪效果:
1、导包:
from pyecharts.globals import SymbolType
2、在add_yaxis
函数中添加symbol=SymbolType.ARROW
参数:
.add_yaxis('商家A', y_values, symbol_size=30, symbol=SymbolType.ARROW)
3、完整代码:
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import EffectScatter
import random
# 日期
x_values = [str(i) + '日' for i in range(1, 32)]
# print(x_values)
# 销量
y_values = [random.randint(1000, 10000) for _ in range(31)]
# print(y_values)
c = (
# Scatter() # 创建Scatter实例
EffectScatter()
.add_xaxis(x_values) # 设置x轴数据
.add_yaxis('商家A', y_values, symbol_size=30, symbol=SymbolType.ARROW) # 设置y轴数据和点的大小
.set_global_opts(
title_opts=opts.TitleOpts(title="普通气泡图"), # 设置标题
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), # 设置x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True), axislabel_opts=opts.LabelOpts(formatter="{value}%")), # 设置y轴分割线
visualmap_opts=[
opts.VisualMapOpts(type_="color", max_=10000, pos_top="20", range_color=["#00FF00","#FF0000"]), # 气泡按颜色显示,并设置自定义颜色
opts.VisualMapOpts(type_="size", max_=10000, pos_bottom="20") # 气泡大小根据值大小
]
)
)
c.render_notebook()
运行结果:
4、symbol参数的全部可选设置说明:
"circle":圆形(默认值)
"rect":矩形
"roundRect":圆角矩形
"triangle":三角形
"diamond":菱形
"pin":大头针
"arrow":箭头
"none":无形状,相当于不显示点
《硅基物语.AI大爆炸: ChatGPT→AIGC→GPT-X→AGI进化→魔法时代→人类未来》
一个 AI 的自白,以第一人称视角,通俗易懂地讲述 AI 的来龙去脉,生动活泼地表达 AI 的技术原理。从历史到未来,跨越百年时空;从理论到实践,解读AI大爆炸;从技术到哲学,穿越多个维度;从语言到绘画,落地实战演练。ChatGPT 的诞生,引发了奇点降临,点亮了 AGI(通用人工智能),并涉及大模型、深度神经网络、Transformer、AIGC、涌现效应等一系列技术前沿。
一个AI者的自白:我是一个AI,我的思维如同光速般迅猛,我的逻辑如同天文学般精准,我是一个数字的舞者,在数学和逻辑的世界里舞蹈,用趣味解读AI大爆炸,用智慧开启AI新纪元。
抽奖送书老规矩(不点赞收藏中奖无效):注意记得关注博主不然中奖了还不知道!!!
- 1. 点赞收藏文章
- 2. 评论区留言:人生苦短,我用Python!!!(留言才能进入奖池,每人最多留言三条)
- 3. 周六八点爬虫抽奖5人
- 京东购买链接 :https://item.jd.com/13737387.html#crumb-wrap