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 ライブラリにパッチを適用する必要のないソリューションを好みます。