在matplotlib中,可以创建带有超链接的 SVG 图形。
例如,我可以使用该scatter
方法来绘制标记,以便每个单独的标记都是一个超链接。
但是,我的一些标记具有我使用该text
方法创建的文本标签。我也可以以某种方式将文本标签转换为超链接吗?
到目前为止,我已经能够实现以下目标。首先,创建一个带有边界框的文本标签,以便bbox
字典有一个url
参数:
ax.text(x, y, label, bbox=dict(boxstyle=..., url=url))
然后稍微打补丁matplotlib/backends/backend_svg.py
(1.1.1版),替换
self.writer.end('</a>')
和
self.writer.end('a')
现在它几乎可以工作了。我可以单击文本周围的区域,但不能单击文本本身(否则,如果我在白色背景上有黑色文本,我可以单击白色部分的任意位置,但不能单击黑色部分)。
将整个文本标签转换为超链接(文本及其边界框)的最简单方法是什么?
理想情况下,我更喜欢不需要修补 matplotlib 库的解决方案。