技巧 | 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


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

相关文章
|
7月前
Echarts 热力图自定义开发
Echarts 热力图自定义开发
293 0
图表
4.5 图表 4.5.1 图表简介 1、图表 图表就是工作表单元格中数据的图形化表示,以直观形象的形式显示数据及数据之间的关系。 图表是基于工作表中的数据建立的,为工作表中的数据建立了图表后,图表和建立图表的数据就建立了一种动态链接关系: 1删除数据清单中的源数据时,图表中相应数据系列会自动删除。 2但删除图表中数据系列时,数据清单中源数据不变 2、图表的分类 按照图表的存放位置分为以下两种类型: 1嵌入式图表 (Alt+F1,默认),它和创建图表的数据源放置在同一张工作表中,打印时同时打印; 2独立图表 (F11),它是一个独立的图表工作表,打印时也将与数据表分开打印。 注意
|
4月前
|
数据可视化 Python
matplotlib可视化必知必会富文本绘制方法
matplotlib可视化必知必会富文本绘制方法
|
6月前
|
开发者 容器
Echarts饼图实现-今日进度-动态图
构建一个动态旋转的ECharts饼图,包括渐变色和动画效果。初始化ECharts实例,设置图表尺寸和背景,配置标题、颜色、系列数据及自定义渲染。利用`renderItem`绘制弧线和圆点,`getCirlPoint`计算坐标。通过`setInterval`和`draw`函数实现旋转动画。完整代码可在链接下载。
164 0
Echarts饼图实现-今日进度-动态图
|
6月前
|
Serverless 开发者 容器
Echarts饼图-今日进度-动态图
构建一个动态饼图,采用ECharts,背景为蓝色科技风,有星球转动效果。通过`echarts.init`初始化,设置图表尺寸和背景色,配置`option`对象含标题、颜色等。利用`series`定义渐变色并自定义渲染,通过`renderItem`绘制弧线和圆点。`getCirlPoint`函数计算坐标,`draw`函数更新角度实现动画。代码包括图表初始化、系列配置、动画逻辑等关键部分。完整代码可在链接处下载。
75 0
|
7月前
|
搜索推荐 数据可视化 Python
Matplotlib图表中的数据标签与图例设置
【4月更文挑战第17天】这篇文章介绍了如何在Python的Matplotlib库中设置数据标签和图例,以增强图表的可读性和解释性。主要内容包括:使用`text`函数添加基本和自定义数据标签,以及自动和手动创建图例。图例的位置和样式可通过`loc`和相关参数调整。文章强调了数据标签和图例结合使用的重要性,提供了一个综合示例来展示实践方法。良好的图表设计旨在清晰有效地传达信息。
|
7月前
|
数据可视化
Echarts5.3.2可视化案例-时间轴动态柱形图
Echarts5.3.2可视化案例-时间轴动态柱形图
Echarts图表中饼状图的指示线条
Echarts图表中饼状图的指示线条
85 1
|
数据可视化 数据挖掘
可视化 | Pyecharts象形柱图--图例自定义
可视化 | Pyecharts象形柱图--图例自定义
|
数据可视化 Python 容器
基础 | Pyecharts绘图基础之图例配置项(LegendOpts)
基础 | Pyecharts绘图基础之图例配置项(LegendOpts)