赞
踩
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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。