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

如何在matplotlib绘制散点图时控制替换点位的图片显示尺寸

问题解决方法

核心调整参数

你可以通过修改两个类的入参实现需求:

  • OffsetImage的zoom参数:控制图片的缩放比例,小于1的数值会等比缩小图片,数值越小图片越小
  • AnnotationBbox的pad/borderpad参数:控制图片外框的内边距,数值越小图片框越小

修改后的参考代码如下:

import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox

def getImage(path, zoom=0.1): # 新增zoom参数控制图片缩放
    return OffsetImage(plt.imread(path), zoom=zoom)


paths = get_img_list()

x = mUMAP[0]
y = mUMAP[1]

fig, ax = plt.subplots(figsize=(16, 8), dpi=80)
# 不需要默认散点可以删掉下一行,避免和自定义图片重叠
# ax.scatter(x, y) 

for x0, y0, path in zip(x, y,paths):
    ab = AnnotationBbox(
        getImage(path, zoom=0.08), # 调整zoom数值修改图片大小
        (x0, y0), 
        frameon=False, # 需要显示外框就改成True
        pad=0, # 控制外框和图片的边距,数值越小外框越小
        borderpad=0 # 控制外框的边框宽度,数值越小外框越小
    )
    ax.add_artist(ab)

plt.show()

1 控制图片框的大小

  • 需要显示外框的话,先把AnnotationBbox的frameon参数改为True
  • 调整pad参数控制图片和外框之间的内边距,数值越大外框越大
  • 调整borderpad参数控制外框的边框宽度,数值越大外框越大
  • 不需要外框的话保持frameon=False即可,此时图片框就是图片本身的边界

2 展示尺寸更小的图片

直接调整OffsetImage的zoom参数即可,该参数默认值为1,是等比缩放不会改变图片长宽比。可以从0.1开始往下调整,比如觉得还是大就改成0.05,直到尺寸符合预期即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:54:01