饼图和玫瑰图
- 饼图
- 玫瑰图
- rosetype 参数
饼图
from pyecharts.charts import Pie
import pyecharts.options as opts
from pyecharts.globals import CurrentConfig,NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST
list(zip(Faker.choose(),Faker.values()))
c = Pie()
c.add('',[list(x)for x in zip(Faker.choose(),Faker.values())])
# c.load_javascript()
c.render_notebook()
- 链式编写
c=(
Pie()
.add('',[list(x)for x in zip(Faker.choose(),Faker.values())])
.set_colors(['red','green','orange','yellow','pink','black','blue'])
.set_global_opts(
title_opts=opts.TitleOpts(title='设置颜色'),
legend_opts=opts.LegendOpts(type_='scroll',pos_left='90%',orient='vertical')
)
.set_series_opts(
label_opts=opts.LabelOpts(formatter='{b}:{c}')
)
)
c.render_notebook()
玫瑰图
v = Faker.choose()
v
[‘河马’, ‘蟒蛇’, ‘老虎’, ‘大象’, ‘兔子’, ‘熊猫’, ‘狮子’]
c = (
Pie(
init_opts=opts.InitOpts(
# 图表的画布大小 使用的是css格式 px是像素大小
width='800px',
height='400px',
renderer=RenderType.CANVAS,# 渲染风格 可选CANVAS 默认 ,SVG
theme=ThemeType.LIGHT,# 图表颜色
bg_color='white',# 背景颜色
)
)
.add(
'',
[list(x)for x in zip(v,Faker.values())],
radius=['20%','60%'],
center=['25%','50%'],
rosetype='radius',
label_opts=opts.LabelOpts(is_show=False) # 不显示标签
)
.add(
'',
[list(x)for x in zip(v,Faker.values())],
radius=['20%','60%'],# 内半径 外半径
center=['75%','50%'],# 圆心位置
rosetype='area',
label_opts=opts.LabelOpts(is_show=True) # 显示标签
)
.set_global_opts(
title_opts=opts.TitleOpts(title='玫瑰图'),
legend_opts=opts.LegendOpts(type_='scroll',pos_left='20%',pos_right='20%') # 分类标题居中
)
# .set_series_opts(
# label_opts=opts.LabelOpts(formatter='{b}:{c}')
# )
)
c.render_notebook()
rosetype 参数
在 pyecharts
中,rosetype
参数用于设置玫瑰图(或称南丁格尔图)的展示类型。这个参数通常与饼图(Pie)一起使用,以创建不同类型的玫瑰图。rosetype
参数接受两个值:radius
或 area
。
rosetype='radius'
:表示玫瑰图的半径(半径模式),即每个扇区的大小不仅取决于数据值,还取决于半径。rosetype='area'
:表示玫瑰图的面积(面积模式),即每个扇区的大小仅取决于数据值,而半径固定。
以下是使用 rosetype='radius'
的一个示例代码:
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
# 创建 Pie 实例
pie = (
Pie()
.add(
series_name="访问来源",
data_pair=[("直接访问", 335), ("邮件营销", 310), ("联盟广告", 274), ("视频广告", 235), ("搜索引擎", 400)],
rosetype="radius", # 设置为半径模式
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-玫瑰图(半径模式)"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
# 渲染图表到 HTML 文件
pie.render("pie_rose_radius.html")
在这个示例中,我们创建了一个玫瑰图,并设置了 rosetype='radius'
,这意味着每个扇区的大小将根据数据值和半径来确定。
要查看生成的图表,你可以打开生成的 HTML 文件(例如 pie_rose_radius.html
)在浏览器中查看效果。这样,你就可以直观地看到不同访问来源的数据分布情况。