如何在matplotlib轴上创建可缩放图像?

时间:2019-04-21 01:17:28

标签: python matplotlib data-visualization

我正在构建一个交互式TSNE显示器,其中显示了聚集在一起的图像示例。我当前的实现是通过创建由AnnotationBBox包装的OffsetImage对象来实现的。每个OffsetImage都包含一幅调整为(75,75)像素的图像,并在数据空间坐标系中进行渲染。

每次缩放(使用matplotlib窗口中的放大镜工具)后,当前图像在视觉上看起来都相同。理想情况下,当我进一步放大数据空间时,我希望能够放大图像,以便对某些群集进行更深入的研究。

理想情况下,我希望使每个图像保持全分辨率(或缩小比例的保持纵横比),并在每次缩放事件之后手动更新OffsetImage的scale参数。但是我不确定如何获取或计算视图的缩放系数以及需要监听哪些事件。

下面是我创建图像的方式。理想情况下,我只想根据图中的缩放程度随时更新任何Offsetimage的zoom参数。

for i in indices_to_render:
    pt = self.points[i]
    url = self.image_urls[i]
    img = img_dict[url]
    logging.debug('rendering image of size: %s for pt: %s from url: %s', str(img.shape), str(pt), url)

    offset_img = OffsetImage(img, zoom=1, picker=True)
    ab = AnnotationBbox(offset_img, pt, bboxprops=dict(edgecolor=border_color), xycoords='data')
    ab.set_picker(True)
    offset_img.set_picker(True)

    self.artists.append(self.ax.add_artist(ab))
    self.images.append(offset_img)

0 个答案:

没有答案