大家好,我是欧K。
本期给大家介绍pyecharts绘制图表时如何设置“水印”,主要涉及水印的大小,位置,颜色,格式等等,希望对你有所帮助。
1. 导入模块
import itertools import random from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.commons.utils import JsCode from pyecharts.faker import Faker from pyecharts.globals import ThemeType
注:itertools包主要用于用于水印位置的笛卡尔积计算
2. 水印样式/数量
2.1 设置水印样式
def graphics(pos,idx=6): return opts.GraphicGroup( graphic_item=opts.GraphicItem( rotation=JsCode('Math.PI / 4'), left=f'{pos[0]}%', top=f'{pos[1]}%', z=1), children=[ opts.GraphicText( graphic_item=opts.GraphicItem( left="center", top="middle", z=1 ), graphic_textstyle_opts=opts.GraphicTextStyleOpts( text="公众号:Python当打之年", font=f"bold {idx*3}px Microsoft YaHei", graphic_basicstyle_opts=opts.GraphicBasicStyleOpts( fill="#808080" ), ), ), ], )
rotation:旋转角度left/top:距离左侧和顶部的距离
fill:水印颜色
2.2 设置水印数量及相对位置
nums = 4 left_pos = [pos for pos in range(0, 100, int(100/nums))] left_pos = [pos for pos in left_pos] top_pos = [pos for pos in range(0, 100, int(100/nums))] top_pos = [pos for pos in top_pos] pos_tur = [item for item in itertools.product(left_pos,top_pos)] nums:水印行列为4*4,可自行设置
3. 生成水印
3.1 基本水印
# 基本水印 graphics_lst = [graphics(i) for i in pos_tur] c = ( Bar(init_opts=opts.InitOpts(width='900px', height='600px')) .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title=""), graphic_opts=graphics_lst, ) ) c.render_notebook()
效果:
3.2 字体逐渐增大
# 字体逐渐增大 graphics_lst = [graphics(item,idx) for idx,item in enumerate(pos_tur)]
效果:
3.3 间隔方向
# 间隔反向 rotation=JsCode('Math.PI / -4' if (idx % 2) else 'Math.PI / 4')
3.4 设置颜色
graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill=random.choice(colors) )
效果1:
效果2:
效果3:
完。
END
以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道