Pyecharts 绘制多种炫酷极坐标系参数说明与代码实战

Pyecharts 是一个基于 Python 的优秀数据可视化库,能够生成精美的交互式图表。在众多图表类型中,极坐标系(Polar Coordinate)图表是一种独特且美观的可视化方式。通过极坐标系,数据能够以不同的角度和半径维度展示,非常适合用于环形图、玫瑰图等特殊应用场景。本文将介绍如何使用 Pyecharts 绘制多种炫酷的极坐标系图表,并详细说明其核心参数。

一、极坐标系简介

极坐标系是一种使用极角和极径(半径)来确定点的图表类型。在极坐标中,数据点的位置由角度和半径决定,而不是常规的笛卡尔坐标系中的 (x, y) 轴。极坐标系有多种常见应用,如:

  1. 玫瑰图(Rose Chart):显示数据项在不同类别下的大小,用扇形角度或半径来表示。
  2. 雷达图(Radar Chart):用于展示多个指标的数据分布情况。
  3. 环形图(Annular Chart):用于展示数据环形分布。

核心参数

  • radiusAxis: 半径轴,控制极径的范围和样式。
  • angleAxis: 角度轴,控制极角的划分和角度范围。
  • polar: 定义极坐标系的整体布局。
  • 数据项: 支持 scatterlinebar 等基本图形组件。

二、环境准备

在开始绘制之前,首先需要安装 Pyecharts 库:

pip install pyecharts

导入必要的模块:

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

三、Pyecharts 极坐标系实战

1. 玫瑰图(Rose Chart)

玫瑰图是一种典型的极坐标系应用。可以通过设置 radiusangle 来控制各扇形区域的大小。

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

# 数据准备
data = [(i, (i % 10) * 10 + 10) for i in range(1, 21)]

# 绘制玫瑰图
polar = (
    Polar()
    .add(
        series_name="玫瑰图示例",
        data=data,
        type_="bar",
        label_opts=opts.LabelOpts(is_show=False),
        radius_axis_index=0,
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="极坐标玫瑰图"),
        angleaxis_opts=opts.AngleAxisOpts(is_clockwise=False, start_angle=90),
        radiusaxis_opts=opts.RadiusAxisOpts(max_=100),
        polar_opts=opts.PolarOpts(),
    )
)

polar.render_notebook()
参数说明:
  • type_="bar":表示用柱形图(bar)绘制扇形区域。
  • angleaxis_opts:控制角度轴的方向和起始角度。
  • radiusaxis_opts:控制半径的最大值。
  • is_clockwise:设置角度轴是否顺时针显示。

2. 雷达图(Radar Chart)

雷达图也可以在极坐标系中使用,它是多维度数据可视化的理想工具。

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

# 定义雷达图的维度
radar = Radar()

schema = [
    opts.RadarIndicatorItem(name="销售", max_=100),
    opts.RadarIndicatorItem(name="管理", max_=100),
    opts.RadarIndicatorItem(name="信息技术", max_=100),
    opts.RadarIndicatorItem(name="客服", max_=100),
    opts.RadarIndicatorItem(name="研发", max_=100),
    opts.RadarIndicatorItem(name="市场", max_=100),
]

# 添加数据和雷达图的配置
radar.add_schema(schema=schema)
radar.add(
    series_name="预算分配",
    data=[[80, 90, 70, 85, 95, 88]],
    linestyle_opts=opts.LineStyleOpts(width=2),
)

radar.set_global_opts(title_opts=opts.TitleOpts(title="雷达图示例"))
radar.render_notebook()
参数说明:
  • add_schema:定义雷达图各个维度的属性(名称和最大值)。
  • linestyle_opts:设置线条的样式,包括宽度、颜色等。

3. 环形图(Annular Chart)

环形图是一种展示数据在圆形上的分布情况,尤其适用于数据周期性或重复性的展示。

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

# 数据准备
data = [(i, (i % 4) * 10 + 10) for i in range(1, 21)]

# 绘制环形图
polar = (
    Polar()
    .add(
        series_name="环形图示例",
        data=data,
        type_="line",
        label_opts=opts.LabelOpts(is_show=False),
        radiusaxis_opts=opts.RadiusAxisOpts(is_clockwise=False),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="极坐标环形图"),
        angleaxis_opts=opts.AngleAxisOpts(is_clockwise=True, start_angle=0),
        radiusaxis_opts=opts.RadiusAxisOpts(max_=40),
        polar_opts=opts.PolarOpts(),
    )
)

polar.render_notebook()
参数说明:
  • type_="line":使用线条代替柱形图,绘制环形图。
  • angleaxis_opts:角度轴配置,控制扇形的角度分布。
  • radiusaxis_opts:设置半径轴的最大值。

4. 极坐标散点图(Scatter Plot)

除了玫瑰图和雷达图,极坐标系也可以用于绘制散点图,将数据以点的形式分布在极坐标上。

from pyecharts.charts import Polar
from pyecharts import options as opts
import random

# 数据准备
data = [(random.randint(0, 360), random.randint(0, 100)) for _ in range(100)]

# 绘制散点图
polar = (
    Polar()
    .add(
        series_name="极坐标散点图",
        data=data,
        type_="scatter",
        effect_opts=opts.EffectOpts(scale=5),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="极坐标散点图"),
        angleaxis_opts=opts.AngleAxisOpts(),
        radiusaxis_opts=opts.RadiusAxisOpts(),
        polar_opts=opts.PolarOpts(),
    )
)

polar.render_notebook()
参数说明:
  • type_="scatter":指定使用散点图形式。
  • effect_opts:设置动画效果,scale 控制点的大小。

四、更多高级极坐标系设置

Pyecharts 提供了丰富的自定义配置,以下是一些常见的高级选项:

  1. 坐标轴样式:可以通过 axisline_optsaxistick_opts 等参数自定义轴线、刻度线的样式。
  2. 动画效果:通过 effect_opts 可以为散点图或其他图形添加动态效果,比如 scaleperiod 等。
  3. 颜色渐变:可通过 color 参数自定义每个数据点或区域的颜色,甚至使用渐变色。

例如,为玫瑰图添加动态效果和颜色渐变:

polar = (
    Polar()
    .add(
        series_name="炫酷玫瑰图",
        data=data,
        type_="bar",
        label_opts=opts.LabelOpts(is_show=False),
        color="rgb(255,99,71)",  # 设置颜色
        radiusaxis_opts=opts.RadiusAxisOpts(max_=100),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="炫酷极坐标玫瑰图"),
        angleaxis_opts=opts.AngleAxisOpts(is_clockwise=True, start_angle=90),
        polar_opts=opts.PolarOpts(),
    )
    .set_series_opts(
        effect_opts=opts.EffectOpts(scale=3, period=3)
    )
)

polar.render_notebook()

五、总结

通过 Pyecharts,极坐标系图表可以用来直观地展现数据的周期性、分布情况和多维特征。本文介绍了四种常见的极坐标系应用:玫瑰图、雷达图、环形图和散点图,并详细解释了核心参数和代码实现。在实际应用中,可以根据

扫描二维码关注公众号,回复: 17410800 查看本文章

猜你喜欢

转载自blog.csdn.net/a1ccwt/article/details/142875716