Closed
Description
Bug report
Bug summary
Using SVG-backend, set_url does nothing for for instances of Line2D, whereas it works for other objects.
Code for reproduction
from matplotlib import pyplot as plt
f = plt.figure()
s = plt.scatter([1, 2, 3], [4, 5, 6])
s.set_urls(['http://www.bbc.co.uk/news', 'http://www.google.com', None])
p = plt.plot([1,3], [6,5], linewidth=5, color='green')
p[0].set_url('http://www.duckduckgo.com')
print(s.get_urls())
print(p[0].get_url())
import io
svg = io.StringIO()
f.savefig(svg, format='svg')
assert "http://www.google.com" in svg.getvalue()
assert "http://www.duckduckgo.com" in svg.getvalue()
Actual outcome
['http://www.bbc.co.uk/news', 'http://www.google.com', None]
http://www.duckduckgo.com
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-5-830e26be00ec> in <module>
15
16 assert "http://www.google.com" in svg.getvalue()
---> 17 assert "http://www.duckduckgo.com" in svg.getvalue()
When the svg is opened in a browser, the scatter plot is clickable yet the line is not.
Expected outcome
Both http://www.google.com
and http://www.duckduckgo.com
should be present in the svg. When the svg is opened in a browser, the line plot should be clickable as well.
Matplotlib version
- Operating system: Ubuntu 18.04.3 LTS
- Matplotlib version: 3.2.1
- Matplotlib backend: module://ipykernel.pylab.backend_inline
- Python version: 3.7.6 (conda)
- Jupyter version (if applicable): 1.2.4
- Other libraries:
I installed matplotlb and python over conda. Issue remains if I install matplotlib from pip, and run the script from the command line.