Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 48031d8

Browse files
authored
Merge pull request #18968 from anntzer/contourgetbackend
Fix clabel() for backends without canvas.get_renderer()
2 parents 7af53bb + d156691 commit 48031d8

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

lib/matplotlib/contour.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def get_label_width(self, lev, fmt, fsize):
250250
fig = self.axes.figure
251251
width = (text.Text(0, 0, lev, figure=fig,
252252
size=fsize, fontproperties=self.labelFontProps)
253-
.get_window_extent(fig.canvas.get_renderer()).width)
253+
.get_window_extent(mpl.tight_layout.get_renderer(fig)).width)
254254
width *= 72 / fig.dpi
255255
return width
256256

lib/matplotlib/tests/test_contour.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,3 +392,9 @@ def test_contour_linewidth(
392392
X = np.arange(4*3).reshape(4, 3)
393393
cs = ax.contour(X, linewidths=call_linewidths)
394394
assert cs.tlinewidths[0][0] == expected
395+
396+
397+
@pytest.mark.backend("pdf")
398+
def test_label_nonagg():
399+
# This should not crash even if the canvas doesn't have a get_renderer().
400+
plt.clabel(plt.contour([[1, 2], [3, 4]]))

0 commit comments

Comments
 (0)