matplotlib में, यह create SVG figures with hyperlinks संभव है।पाठ लेबल में पायथन, matplotlib, svg और hyperlinks
उदाहरण के लिए, मैं मार्कर बनाने के लिए 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 लाइब्रेरी को पैच करने की आवश्यकता नहीं है।
ऐसा लगता है कि आपको एक बग मिला है। क्या आप इसे github.com/matplotlib/matplotlib समस्या ट्रैकर पर रिपोर्ट करना चाहते हैं? यदि आपका उत्सुकता है, तो यह काफी पहले सक्षम योगदान भी देगा। ;-) एचटीएच – pelson
@ पेल्सन: ठीक है, '' हिस्सा निश्चित रूप से एक बग है, और निश्चित रूप से यह अच्छा होगा अगर किसी ने इसे ठीक किया हो।हालांकि, मुख्य मुद्दा यह है कि कुछ विशेषताएं गायब हैं, और मुझे नहीं पता कि इन सुविधाओं को कभी भी Matplotlib में लागू किया जाएगा या नहीं। मैं वास्तव में इसके लिए इंतजार नहीं कर सकता, और इसलिए मैं कुछ चाल ढूंढ रहा था जिसे मैं अपने कोड में उपयोग कर सकता था। मैं पहले ही मैटप्लॉटिब द्वारा उत्पादित एसवीजी कोड पोस्ट प्रोसेसिंग जैसी चीजें कर रहा हूं, इसलिए मुझे कोई फर्क नहीं पड़ता कि चाल बदसूरत हैं या नहीं। :) –