这一章接着上一篇博客的内容,介绍一些我们常见的基本图形。
极坐标系:Polar
import math
import random
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Page, Polar
polar_scatter0 = Polar()
data = [(i, random.randint(1, 100)) for i in range(101)]
#type:bar,scatter,line,effectScatter
polar_scatter0.add("", data, type_="scatter", label_opts=opts.LabelOpts(is_show=False))
polar_scatter0.set_global_opts(title_opts=opts.TitleOpts(title="Polar-Scatter0"))
polar_scatter0.render_notebook()
polar_scatter2 = Polar()
data = [(i, random.randint(1, 100)) for i in range(10)]
polar_scatter2.add("", data, type_="effectScatter",
effect_opts=opts.EffectOpts(scale=10, period=5),
label_opts=opts.LabelOpts(is_show=False))
polar_scatter2.set_global_opts(title_opts=opts.TitleOpts(title="Polar-Scatter2"))
polar_scatter2.render_notebook()
极坐标系径向轴配置项
RadiusAxisOpts:( polar_index = None,data,boundary_gap = None,type= None,name,name_location = None, min= None,max=None,is_scale = False,splitline_opts= None,axisline_opts= None, axislabel_opts= None,z)
-
径向轴所在的极坐标系的索引,默认使用第一个极坐标系。
polar_index: Optional[int] = None, -
数据项,参考
global_options.RadiusAxisItem
data: Optional[Sequence[Union[RadiusAxisItem, dict, str]]] = None, -
坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。 类目轴中 boundaryGap 可以配置为 true 和 false。默认为
true,这时候刻度只是作为分隔线, 标签和数据点都会在两个刻度之间的带(band)中间。
非类目轴,包括时间,数值,对数轴,boundaryGap是一个两个值的数组,分别表示数据最小值和最大值的延伸范围
可以直接设置数值或者相对的百分比,在设置 min 和 max 后无效。 示例:boundaryGap: [‘20%’, ‘20%’]。
boundary_gap: Union[bool, Sequence] = None, -
坐标轴类型。可选:
‘value’: 数值轴,适用于连续数据。
‘category’: 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
‘time’:时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同 。例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
‘log’ 对数轴。适用于对数数据。
type_: Optional[str] = None, -
坐标轴名称。 name: Optional[str] = None,
-
坐标轴名称显示位置。可选: ‘start’, ‘middle’ 或者 ‘center’,‘end’ name_location:Optional[str] = None,
-
坐标轴刻度最小值。 可以设置成特殊值 ‘dataMin’,此时取数据在该轴上的最小值作为最小刻度。
不设置时会自动计算最小值保证坐标轴刻度的均匀分布。 在类目轴中,也可以设置为类目的序数(如类目轴 data: [‘类A’, ‘类B’,
‘类C’] 中,序数 2 表示 ‘类C’ 也可以设置为负数,如 -3)。
min_: Union[str, Numeric, None] = None, -
坐标轴刻度最大值。 可以设置成特殊值 ‘dataMax’,此时取数据在该轴上的最大值作为最大刻度。
不设置时会自动计算最大值保证坐标轴刻度的均匀分布。 在类目轴中,也可以设置为类目的序数(如类目轴 data: [‘类A’, ‘类B’,
‘类C’] 中,序数 2 表示 ‘类C’ 也可以设置为负数,如 -3)。
max_: Union[str, Numeric, None]= None, -
只在数值轴中(type: ‘value’)有效。 是否是脱离 0 值比例。设置成 true 后坐标刻度不会强制包含零刻度。在双数值轴的散点图中比较有用。 在设置 min 和 max 之后该配置项无效。
is_scale:bool = False, -
分割线配置项,参考
series_options.SplitLineOpts
splitline_opts:Union[SplitLineOpts, dict, None] = None, -
坐标轴线风格配置项,参考
series_options.AxisLineOpts
-
axisline_opts:Union[AxisLineOpts, dict, None] = None,
-
坐标轴线标签配置项,参考
series_options.LabelOpts
-
axislabel_opts:Union[LabelOpts, dict, None] = None,
-
半径轴组件的所有图形的 z 值。控制图形的前后顺序。z 值 小的图形会被 z 值大的图形覆盖。
z: Optional[int] =None,
#stack:数据堆叠,同个类目轴上系列配置相同的stack值可以堆叠放置。
polar_radiusaxis = Polar()
polar_radiusaxis.add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(data=Faker.week, type_="category")
)
polar_radiusaxis.add("A", [1, 2, 3, 4, 3, 5, 1], type_="bar", stack="stack0")
polar_radiusaxis.add("B", [2, 4, 6, 1, 2, 3, 1], type_="bar", stack="stack0")
polar_radiusaxis.add("C", [1, 2, 3, 4, 1, 2, 5], type_="bar", stack="stack0")
polar_radiusaxis.set_global_opts(title_opts=opts.TitleOpts(title="Polar-RadiusAxis"))
polar_radiusaxis.render_notebook()
AngleAxisOpts:极坐标系角度轴配置项
AngleAxisOpts(polar_index= None,data = None,start_angle= None,is_clockwise= False, boundary_gap= None,type= None, min= None,max= None,splitline_opts= None, axisline_opts= None,axislabel_opts= None,z= None)
polar_angleaxis=Polar()
polar_angleaxis.add_schema(
angleaxis_opts=opts.AngleAxisOpts(data=Faker.week, type_="category")
)
polar_angleaxis.add("A", [1, 2, 3, 4, 3, 5, 1], type_="bar", stack="stack0")
polar_angleaxis.add("B", [2, 4, 6, 1, 2, 3,