技巧 | Pyecharts自定义图表水印

简介: 技巧 | Pyecharts自定义图表水印

大家好,我是欧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


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
Echarts参数属性学习:formatter字符串&返回函数的实战案例
Echarts参数属性学习:formatter字符串&返回函数的实战案例
1068 0
|
机器学习/深度学习 编解码 算法
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
864 0
MonacoEditor 主动触发代码提示功能
MonacoEditor是微软提供的代码编辑器 vscode即是使用它作为编辑器。 它的开发语言是ts,可以嵌入到浏览器中。   代码提示或者说代码补全功能是我们经常需要定制的部分。 目前它提供的快捷键是ctrl+space,和win10以下的操作系统的默认中英文切换是冲突的。
6717 0
|
12月前
|
存储 资源调度 JavaScript
一文带你了解PNPM以及 npm,yarn,pnpm区别
一文带你了解PNPM以及 npm,yarn,pnpm区别
828 9
|
JavaScript 前端开发
基于Vue实现具有固定表头、合并单元格的Html表格
本文介绍了如何在Vue框架中创建一个具有固定表头和合并单元格功能的HTML表格,通过CSS的`position: sticky`属性实现表头固定,并通过设置`rowspan`和`colspan`属性来实现单元格合并。
375 0
基于Vue实现具有固定表头、合并单元格的Html表格
|
JavaScript UED
惊艳!Vue 3 中使用 Suspense 实现异步组件加载,用户体验 大大大大大 提升!!
惊艳!Vue 3 中使用 Suspense 实现异步组件加载,用户体验 大大大大大 提升!!
|
关系型数据库 MySQL 数据库
在 Postgres 中使用 Insert Into Ignore
【8月更文挑战第11天】
777 0
|
前端开发 JavaScript CDN
前端实现打字机的效果 -- typed库的使用
typed.js是一款轻量级JavaScript插件,模拟打字机效果,用于网页文本的动画输入。特点是易用、高度可配置,支持多种动画模式且无依赖。配置包括字符串、速度、显示延迟、循环选项等。安装可通过NPM或CDN。使用时在HTML中添加`<span>`标签,然后在JS中实例化Typed对象。丰富的回调函数可用于自定义行为。适用于展示性和个人博客网站,增加互动性。尝试不同配置,创建独特动态文本效果。
816 0
|
搜索推荐 前端开发 UED
html页面实现自动适应手机浏览器(一行代码搞定)
html页面实现自动适应手机浏览器(一行代码搞定)
1073 0

热门文章

最新文章