pyecharts中Pie常用全局配置和系列配置项
pyecharts的全局配置和系列配置
全局配置
from pyecharts import options as opts
from pyecharts.charts import Pie
x=['草莓', '芒果', '葡萄', '雪梨', '西瓜', '柠檬', '车厘子']
y=[105, 91, 27, 58, 44, 150, 102]
c = (
Pie()
.add("", [list(z) for z in zip(x, y)])
.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-设置颜色"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
.render("xxxxx.html")
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-Radius"), # 图的标题
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"), # 图例的位置
)
title_opts , legend_opts 名称不能更改
title_opts 中的参数
title:主标题
subtitle:副标题文本,支持使用 \n 换行
title_textstyle_opts:标题字体设置title_textstyle_opts=opts.TextStyleOpts(color=“#fff”)
设置背景色
init_opts=opts.InitOpts(width="1600px", height="800px", bg_color="#2c343c")
bg_color=“#2c343c”
注意初始化要在你创建图对象的时候
c = (Pie(init_opts=opts.InitOpts(width="1600px", height="800px", bg_color="#2c343c"))
.add(
"",
[list(z) for z in zip(Faker.choose(), Faker.values()) ],
)
)
opts.LegendOpts中的参数
orient # 图例列表的布局朝向。可选:‘horizontal’, ‘vertical’
水平,垂直
pos_left :图例组件离容器左侧的距离。比如’20%’
pos_right:
pos_top:图例组件离容器上侧的距离。
pos_bottom:图例组件离容器下侧的距离
orient="vertical", pos_top="15%", pos_left="2%"
把图例放在左边
把图例放在上面
orient="horizontal", pos_top="5%", pos_left="25%"
把图例放在下面
orient="horizontal",pos_bottom="5%", pos_left="25%"
提示框配置项
在全局配置中
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
),
鼠标触碰触发
{a}:系列名。
{b}:数据名。
{c}:数据值。
{d}:百分比。
系列配置项
标签配置项
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
formatter :{a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。
比如
formatter="{b}: {c}"
下图中的红框圈出的地方(数据名:数据)
换成formatter="{b}: {d}"
数据名:百分比
还可以改颜色
label_opts=opts.LabelOpts(formatter="{b}: {c}", color="rgba(255, 255, 255, 0.3)"),
也可以关闭标签(面圈图)
只需要在add中加
label_opts=opts.LabelOpts(is_show=False, position="center"),
你可能觉得这图不显示数据有什么意义,其实可以加上提示框
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
),
)
这样你放鼠标的时候就会触发效果
不同图表类型下的 {a},{b},{c},{d} 含义不一样
# 折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)
# 散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)
# 地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)
# 饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
值得一提的是画Pie的
.add("" , data, radius=["40%", "75%"])
radius设置内外半径,可以实现中间的空心效果
还有就是rosetype=“radius”,
rosetype 有两种表现形式"radius" “area”
可以画玫瑰图
你还可以自己配色
.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
x=['草莓', '芒果', '葡萄', '雪梨', '西瓜', '柠檬', '车厘子']
y=[105, 91, 27, 58, 44, 150, 102]
c = (
Pie(init_opts=opts.InitOpts( bg_color="#2c343c")) # bg_color="#2c343c"
.add(
"",
[list(z) for z in zip(x,y) ],
radius=["40%", "75%"],
rosetype="radius",
# rosetype="area"
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Customized Pie",
pos_left="center",
pos_top="20",
title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
),
# legend_opts=opts.LegendOpts(is_show=False),
legend_opts=opts.LegendOpts( orient='vertical',pos_top="15%", pos_left="2%",
textstyle_opts=opts.TextStyleOpts(color="#fff")
)
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
)
c.render_notebook()
关闭图例,有时设置背景色后可能出现
可以选择关闭图例
legend_opts=opts.LegendOpts(is_show=False) # 全局 配置
当然除了关闭图例,也可以选择更改图例颜色
textstyle_opts=opts.TextStyleOpts(color="#fff")
在全局配置中添加
legend_opts=opts.LegendOpts( orient='vertical',pos_top="15%", pos_left="2%",
textstyle_opts=opts.TextStyleOpts(color="#fff")
)
标签有富文本展示功能
回调函数,回调函数格式:
{name|{模板变量}}
formatter="{aa|{a}}{bb|}\n{cc|}\n {dd|{b}: }{c} {ee|{d}%} ",
bb配置上半部分颜色 cc 添加下划线 dd车厘子的字体 ee百分比的填充颜色(此例的完整代码在文末附录)
具体的配置可以看官方文档这里
当图例过多时,可以设置滚动图例type_=“scroll”,
legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"), # 全局配置
也可以在一个html中绘制多个图,只需要调一下center参数即可。
还可以更换主题
from pyecharts.globals import ThemeType
官网目前有十种主题可选
init_opts=opts.InitOpts(theme=ThemeType.DARK)
附录
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
x=['草莓', '芒果', '葡萄', '雪梨', '西瓜', '柠檬', '车厘子']
y=[105, 91, 27, 58, 44, 150, 102]
c = (
Pie()
.add(
"",
[list(z) for z in zip(x, y)],
radius=["40%", "55%"],
label_opts=opts.LabelOpts(
position="outside",
formatter="{aa|{a}}{bb|}\n{cc|}\n {dd|{b}: }{c} {d}% ", # bb
background_color="#eee",
border_color="#aaa",
border_width=1,
border_radius=4,
rich={
"aa": {"color": "#999", "lineHeight": 22, "align": "center"},
"bb": {
"backgroundColor": "#e3e3e3",
"width": "100%",
"align": "right",
"height": 22,
"borderRadius": [4, 4, 0, 0],
},
"cc": {
"borderColor": "#aaa",
"width": "100%",
"borderWidth": 0.5,
"height": 0,
},
"dd": {"fontSize": 16, "lineHeight": 33},
"ee": {
"color": "#eee",
"backgroundColor": "#334455",
"padding": [2, 4],
"borderRadius": 2,
},
},
),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-富文本示例"))
)
c.render_notebook()
更多推荐
所有评论(0)