Skip to content

Commit c22e057

Browse files
committed
Fixes scale calculation to correct pdf rendering failures.
1 parent 0f66d2c commit c22e057

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

lib/mpl_toolkits/mplot3d/axis3d.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,11 @@ def draw(self, renderer):
264264
lxyz = 0.5*(edgep1 + edgep2)
265265

266266
# A rough estimate; points are ambiguous since 3D plots rotate
267-
deltas_per_point = 48 / (self.axes.bbox.height + self.axes.bbox.width)
268-
default_offset = 31.5
267+
ax_scale = self.axes.bbox.size / self.figure.bbox.size
268+
ax_inches = np.multiply(ax_scale, self.figure.get_size_inches())
269+
ax_points_estimate = sum(72. * ax_inches)
270+
deltas_per_point = 48. / ax_points_estimate
271+
default_offset = 21.
269272
labeldeltas = (self.labelpad + default_offset) * deltas_per_point\
270273
* deltas
271274
axmask = [True, True, True]
@@ -396,7 +399,7 @@ def draw(self, renderer):
396399
renderer.M)
397400

398401
# Get position of label
399-
default_offset = 12 # A rough estimate
402+
default_offset = 8. # A rough estimate
400403
labeldeltas = (tick.get_pad() + default_offset) * deltas_per_point\
401404
* deltas
402405

-131 Bytes
Loading

lib/mpl_toolkits/tests/test_mplot3d.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def test_axes3d_labelpad():
250250
ax.set_zlabel('Z LABEL')
251251
# or manually
252252
ax.yaxis.labelpad = 20
253-
ax.zaxis.labelpad = -60
253+
ax.zaxis.labelpad = -40
254254

255255
# Tick labels also respect tick.pad (also from rcParams)
256256
for i, tick in enumerate(ax.yaxis.get_major_ticks()):

0 commit comments

Comments
 (0)