You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Seaborn折线图上添加PNG格式的水印图片

Seaborn线图添加PNG水印完整实现流程

第一步:导入额外依赖库

在你现有代码的导入部分新增以下内容:

from PIL import Image
from matplotlib.offsetbox import OffsetImage, AnchoredOffsetbox

第二步:在原有绘图代码后追加水印挂载逻辑

你原有代码不需要修改,直接在后面加以下内容即可:

# 读取PNG水印文件,替换为你自己的水印文件路径
watermark_img = Image.open("你的水印文件路径.png")
# 调整水印透明度,0为完全透明,1为完全不透明,建议设0.15-0.3避免遮挡折线
watermark_img.putalpha(int(255 * 0.2))
# 配置水印缩放比例,根据你的画布大小调整数值
imagebox = OffsetImage(watermark_img, zoom=0.5)
# 设置水印位置,可选参数:center/upper left/upper right/lower left/lower right等
ab = AnchoredOffsetbox(loc='center', child=imagebox, frameon=False, borderpad=0)
# 把水印添加到当前轴域
axes.add_artist(ab)

# 最后正常显示或保存图片即可
plt.show()
# 保存的时候要加dpi参数保证清晰度
# plt.savefig("折线图.png", dpi=300, facecolor=axes.get_facecolor(), bbox_inches='tight')

完整可运行代码整合

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from PIL import Image
from matplotlib.offsetbox import OffsetImage, AnchoredOffsetbox

# --------------- 你的原有绘图逻辑 ---------------
# 这里替换为你自己的df数据加载逻辑
# df = pd.read_csv("你的数据文件.csv")
s = sns.lineplot(data=df[['eth-in','eth-out']], dashes=False,)

plt.tick_params(axis='y', colors='white')
plt.tick_params(axis='x', colors='white')

plt.xlabel("Block Signed Date",color='white')
plt.ylabel("Amount",color='white')

axes = plt.gca()
axes.yaxis.grid()
# --------------- 原有绘图逻辑结束 ---------------

# --------------- 新增水印逻辑 ---------------
# 读取PNG水印文件,替换为你自己的水印文件路径
watermark_img = Image.open("你的水印文件路径.png")
# 调整水印透明度
watermark_img.putalpha(int(255 * 0.2))
# 配置水印缩放比例
imagebox = OffsetImage(watermark_img, zoom=0.5)
# 设置水印位置
ab = AnchoredOffsetbox(loc='center', child=imagebox, frameon=False, borderpad=0)
axes.add_artist(ab)

plt.show()

常用参数调整说明

  • 透明度调整:修改putalpha里的系数,数值越大水印越不透明
  • 大小调整:修改zoom参数,数值越大水印尺寸越大
  • 位置调整:修改loc参数,可选值对应画布的不同方位

内容的提问来源于stack exchange,提问作者Dude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 06:48:10