Skip to content

Commit 56b0ad4

Browse files
authored
Merge pull request #23338 from tacaswell/auto-backport-of-pr-23278-on-v3.5.x
Backport PR #23278: Remove internal use of get/set dpi
2 parents 16e8a7a + b474ee0 commit 56b0ad4

File tree

7 files changed

+26
-16
lines changed

7 files changed

+26
-16
lines changed

lib/matplotlib/backends/backend_mixed.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def __init__(self, figure, width, height, dpi, vector_renderer,
5353
# the figure dpi before and after the rasterization. Although
5454
# this looks ugly, I couldn't find a better solution. -JJL
5555
self.figure = figure
56-
self._figdpi = figure.get_dpi()
56+
self._figdpi = figure.dpi
5757

5858
self._bbox_inches_restore = bbox_inches_restore
5959

@@ -74,7 +74,7 @@ def start_rasterizing(self):
7474
`stop_rasterizing` is called) will be drawn with the raster backend.
7575
"""
7676
# change the dpi of the figure temporarily.
77-
self.figure.set_dpi(self.dpi)
77+
self.figure.dpi = self.dpi
7878
if self._bbox_inches_restore: # when tight bbox is used
7979
r = process_figure_for_rasterizing(self.figure,
8080
self._bbox_inches_restore)
@@ -110,7 +110,7 @@ def stop_rasterizing(self):
110110
self._raster_renderer = None
111111

112112
# restore the figure dpi.
113-
self.figure.set_dpi(self._figdpi)
113+
self.figure.dpi = self._figdpi
114114

115115
if self._bbox_inches_restore: # when tight bbox is used
116116
r = process_figure_for_rasterizing(self.figure,

lib/matplotlib/backends/backend_pdf.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2774,8 +2774,8 @@ def print_pdf(self, filename, *,
27742774
bbox_inches_restore=None, metadata=None):
27752775

27762776
if dpi is None: # always use this branch after deprecation elapses.
2777-
dpi = self.figure.get_dpi()
2778-
self.figure.set_dpi(72) # there are 72 pdf points to an inch
2777+
dpi = self.figure.dpi
2778+
self.figure.dpi = 72 # there are 72 pdf points to an inch
27792779
width, height = self.figure.get_size_inches()
27802780
if isinstance(filename, PdfPages):
27812781
file = filename._file

lib/matplotlib/backends/backend_pgf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ def _print_pgf_to_fh(self, fh, *, bbox_inches_restore=None):
826826

827827
# get figure size in inch
828828
w, h = self.figure.get_figwidth(), self.figure.get_figheight()
829-
dpi = self.figure.get_dpi()
829+
dpi = self.figure.dpi
830830

831831
# create pgfpicture environment and write the pgf code
832832
fh.write(header_text)

lib/matplotlib/backends/backend_ps.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -853,8 +853,8 @@ def _print_ps(
853853
**kwargs):
854854

855855
if dpi is None: # always use this branch after deprecation elapses.
856-
dpi = self.figure.get_dpi()
857-
self.figure.set_dpi(72) # Override the dpi kwarg
856+
dpi = self.figure.dpi
857+
self.figure.dpi = 72 # Override the dpi kwarg
858858

859859
dsc_comments = {}
860860
if isinstance(outfile, (str, os.PathLike)):

lib/matplotlib/backends/backend_svg.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1322,8 +1322,8 @@ def print_svg(self, filename, *args, dpi=None, bbox_inches_restore=None,
13221322
if not cbook.file_requires_unicode(fh):
13231323
fh = codecs.getwriter('utf-8')(fh)
13241324
if dpi is None: # always use this branch after deprecation elapses
1325-
dpi = self.figure.get_dpi()
1326-
self.figure.set_dpi(72)
1325+
dpi = self.figure.dpi
1326+
self.figure.dpi = 72
13271327
width, height = self.figure.get_size_inches()
13281328
w, h = width * 72, height * 72
13291329
renderer = MixedModeRenderer(

lib/matplotlib/tests/test_figure.py

+14-4
Original file line numberDiff line numberDiff line change
@@ -602,8 +602,8 @@ def test_invalid_layouts():
602602

603603
@check_figures_equal(extensions=["png", "pdf"])
604604
def test_add_artist(fig_test, fig_ref):
605-
fig_test.set_dpi(100)
606-
fig_ref.set_dpi(100)
605+
fig_test.dpi = 100
606+
fig_ref.dpi = 100
607607

608608
fig_test.subplots()
609609
l1 = plt.Line2D([.2, .7], [.7, .7], gid='l1')
@@ -1237,10 +1237,10 @@ def test_subfigure_ticks():
12371237
ax2.scatter(x=[-126.5357270050049, 94.68456736755368], y=[1500, 3600])
12381238
ax3 = subfig_bl.add_subplot(gs[0, 3:14], sharey=ax1)
12391239

1240-
fig.set_dpi(120)
1240+
fig.dpi = 120
12411241
fig.draw_without_rendering()
12421242
ticks120 = ax2.get_xticks()
1243-
fig.set_dpi(300)
1243+
fig.dpi = 300
12441244
fig.draw_without_rendering()
12451245
ticks300 = ax2.get_xticks()
12461246
np.testing.assert_allclose(ticks120, ticks300)
@@ -1263,6 +1263,16 @@ def test_subfigure_scatter_size():
12631263
ax.scatter([3, 4, 5], [1, 2, 3], s=[20, 30, 40], marker='s', color='g')
12641264

12651265

1266+
def test_subfigure_pdf():
1267+
fig = plt.figure(layout='constrained')
1268+
sub_fig = fig.subfigures()
1269+
ax = sub_fig.add_subplot(111)
1270+
b = ax.bar(1, 1)
1271+
ax.bar_label(b)
1272+
buffer = io.BytesIO()
1273+
fig.savefig(buffer, format='pdf')
1274+
1275+
12661276
def test_add_subplot_kwargs():
12671277
# fig.add_subplot() always creates new axes, even if axes kwargs differ.
12681278
fig = plt.figure()

lib/matplotlib/text.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1486,13 +1486,13 @@ def _get_xy_transform(self, renderer, s):
14861486
ref_x, ref_y = xy0
14871487
if unit == "points":
14881488
# dots per points
1489-
dpp = self.figure.get_dpi() / 72.
1489+
dpp = self.figure.dpi / 72
14901490
tr = Affine2D().scale(dpp)
14911491
elif unit == "pixels":
14921492
tr = Affine2D()
14931493
elif unit == "fontsize":
14941494
fontsize = self.get_size()
1495-
dpp = fontsize * self.figure.get_dpi() / 72.
1495+
dpp = fontsize * self.figure.dpi / 72
14961496
tr = Affine2D().scale(dpp)
14971497
elif unit == "fraction":
14981498
w, h = bbox0.size

0 commit comments

Comments
 (0)