使用pyecharts绘制极坐标系图
简介
极坐标系图是一种用于可视化数据的坐标系,与常见的直角坐标系图(笛卡尔坐标系)不同,它使用角度和半径来表示数据点的位置。极坐标系图非常适合展示数据的循环性和周期性关系,以及数据点在一个圆形或极坐标网格上的分布情况。极坐标系图常用于气象学、天文学、声学、生物学、工程学等领域,用于分析和展示周期性数据。它们还可以用于可视化多维数据,其中每个维度由不同的半径表示。本文就给大家介绍一下使用pyecharts绘制极坐标系图。
配置
- 导包
极坐标系图和其他类型的图一样,有一个自身专属的类,要绘制极坐标系图,我们需要导入这个类,导入的类如下:
from pyecharts import options as opts
from pyecharts.charts import Polar
- add函数设置
def add(self,series_name: str, # 系列名称,用于标识不同的数据系列data: types.Sequence, # 数据序列,包含要绘制的数据点*,type_: str = "line", # 系列类型,默认为线图symbol: types.Optional[str] = None, # 标记点的样式,默认为Nonesymbol_size: types.Numeric = 4, # 标记点的大小,默认为4stack: types.Optional[str] = None, # 数据堆叠的分组,默认为Nonecenter: types.Optional[types.Sequence] = None, # 极坐标系的中心点,默认为Nonelabel_opts: types.Label = opts.LabelOpts(is_show=False), # 标签的设置,默认不显示areastyle_opts: types.AreaStyle = opts.AreaStyleOpts(), # 区域样式的设置,默认为空effect_opts: types.Effect = opts.EffectOpts(), # 特效的设置,默认为空tooltip_opts: types.Tooltip = None, # 提示框的设置,默认为Noneitemstyle_opts: types.ItemStyle = None, # 数据项样式的设置,默认为None
)
绘图实例
- 极坐标系结合折线图
下面我们来绘制一个极坐标系和折线结合的图形,代码如下:
from pyecharts import options as opts # 导入pyecharts的配置模块
from pyecharts.charts import Polar # 导入极坐标系图表模块data = [(5, 50, "A"), # 数据点1,包含极径、极角和标签(20, 60, "B"), # 数据点2,包含极径、极角和标签(30, 70, "C"), # 数据点3,包含极径、极角和标签(40, 80, "D"), # 数据点4,包含极径、极角和标签(50, 90, "E"), # 数据点5,包含极径、极角和标签
]image = (Polar() # 创建一个极坐标系图表对象.add_schema(angleaxis_opts=opts.AngleAxisOpts(data=data, type_="value")) # 设置角度轴参数.add("data", data) # 添加数据系列.set_global_opts(title_opts=opts.TitleOpts(title="极坐标系+折线图")) # 设置全局参数,如标题
)image.render("极坐标系结合折线图.html") # 将图表渲染为HTML文件
以上代码绘制了一个普通极坐标系图表,其中data变量包含了一组数据,每个数据点由角度、半径和标签组成。图表将显示这些数据点,并在图表中心绘制角度轴,绘制的图形如下:
- 极坐标图结合散点图
很多时候,我们需要分析数据的分布,绘制散点图,同样地,我们也可以将极坐标图和散点图结合起来,代码如下:
from pyecharts import options as opts # 导入pyecharts的配置模块
from pyecharts.charts import Polar # 导入极坐标系图表模块
import random # 导入random模块,用于生成随机数data = [(i, random.randint(1, 100)) for i in range(101)] # 生成包含101个数据点的列表,每个数据点由极径和随机生成的极角组成c = (Polar() # 创建一个极坐标系图表对象.add_schema(angleaxis_opts=opts.AngleAxisOpts()) # 设置角度轴的参数.add("data",data,type_="scatter",label_opts=opts.LabelOpts(is_show=False),) # 添加散点图的数据系列,设置散点图的类型和标签参数.set_global_opts(title_opts=opts.TitleOpts(title="极坐标系+散点图")) # 设置全局参数,如标题
)c.render("极坐标系结合散点图.html") # 将图表渲染为HTML文件
- 散点图添加涟漪效果
有时候我们会觉得散点图不够炫酷,我们可以给图添加一些动态效果,比如加上涟漪效果,代码如下:
from pyecharts import options as opts # 导入pyecharts的配置模块
from pyecharts.charts import Polar # 导入极坐标系图表模块
import random # 导入random模块,用于生成随机数data = [(i, random.randint(1, 100)) for i in range(101)] # 生成包含101个数据点的列表,每个数据点由极径和随机生成的极角组成c = (Polar() # 创建一个极坐标系图表对象.add_schema(angleaxis_opts=opts.AngleAxisOpts()) # 设置角度轴的参数.add("data",data,type_="effectScatter",effect_opts=opts.EffectOpts(scale=10, period=5),label_opts=opts.LabelOpts(is_show=False),) # 添加涟漪散点图的数据系列,设置涟漪散点图的类型和特效参数.set_global_opts(title_opts=opts.TitleOpts(title="涟漪散点图")) # 设置全局参数,如标题
)c.render("涟漪效果图.html") # 将图表渲染为HTML文件
运行代码,绘制的图像如下:
- 极坐标系+饼图
我们还可以将饼图与极坐标系结合起来,代码如下:
from pyecharts import options as opts # 导入pyecharts的配置模块
from pyecharts.charts import Polar # 导入极坐标系图表模块
from pyecharts.faker import Faker # 导入Faker模块,用于生成虚假数据image = (Polar() # 创建一个极坐标系图表对象.add_schema(angleaxis_opts=opts.AngleAxisOpts(data=Faker.week, type_="category")) # 设置角度轴的参数.add("A", [1, 2, 3, 6, 3, 5, 1], type_="bar", stack="stack0") # 添加数据系列A,设置柱状图的类型和堆叠分组.add("B", [2, 4, 6, 3, 2, 3, 1], type_="bar", stack="stack0") # 添加数据系列B,设置柱状图的类型和堆叠分组.add("C", [1, 2, 3, 4, 1, 2, 6], type_="bar", stack="stack0") # 添加数据系列C,设置柱状图的类型和堆叠分组.set_global_opts(title_opts=opts.TitleOpts(title="极坐标系结合饼图")) # 设置全局参数,如标题
)image.render("极坐标系结合饼图.html") # 将图表渲染为HTML文件
运行代码,绘制的图像如下:
总结
本文主要介绍了如何使用pyecharts绘制极坐标系,并使用极坐标系结合其他图形来进行数据分析,希望本文可以帮助到大家。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!