|
4 | 4 | import warnings |
5 | 5 |
|
6 | 6 | import numpy as np |
| 7 | +from numpy.testing import assert_allclose |
7 | 8 | import pytest |
8 | 9 |
|
9 | 10 | from matplotlib.testing.decorators import check_figures_equal, image_comparison |
@@ -398,6 +399,51 @@ def test_warn_args_kwargs(self): |
398 | 399 | "be discarded.") |
399 | 400 |
|
400 | 401 |
|
| 402 | +def test_figure_legend_outside(): |
| 403 | + outside = [True]*9 + ['upper', 'upper', 'lower', 'lower'] |
| 404 | + print(outside) |
| 405 | + todos = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4] |
| 406 | + axbb = [[20.347556, 27.722556, 659.249, 588.833], # upper right |
| 407 | + [151.681556, 27.722556, 790.583, 588.833], # upper left |
| 408 | + [151.681556, 27.722556, 790.583, 588.833], # lower left |
| 409 | + [20.347556, 27.722556, 659.249, 588.833], # lower right |
| 410 | + [20.347556, 27.722556, 659.249, 588.833], # right |
| 411 | + [151.681556, 27.722556, 790.583, 588.833], # center left |
| 412 | + [20.347556, 27.722556, 659.249, 588.833], # center right |
| 413 | + [20.347556, 71.056556, 790.583, 588.833], # lower center |
| 414 | + [20.347556, 27.722556, 790.583, 545.499], # upper center |
| 415 | + [20.347556, 27.722556, 790.583, 545.499], # up-right,'upper' |
| 416 | + [20.347556, 27.722556, 790.583, 545.499], # up-left,'upper' |
| 417 | + [20.347556, 71.056556, 790.583, 588.833], # low-left,'lower' |
| 418 | + [20.347556, 71.056556, 790.583, 588.833], # low-right,'lower' |
| 419 | + ] |
| 420 | + legbb = [[667., 555., 790., 590.], # upper right |
| 421 | + [10., 555., 133., 590.], # upper left |
| 422 | + [10., 10., 133., 45.], # lower left |
| 423 | + [667, 10., 790., 45.], # lower right |
| 424 | + [667., 282.5, 790., 317.5], |
| 425 | + [10., 282.5, 133., 317.5], |
| 426 | + [667., 282.5, 790., 317.5], |
| 427 | + [338.5, 10., 461.5, 45.], |
| 428 | + [338.5, 555., 461.5, 590.], |
| 429 | + [667., 555., 790., 590.], # upper right |
| 430 | + [10., 555., 133., 590.], # upper left |
| 431 | + [10., 10., 133., 45.], # lower left |
| 432 | + [667, 10., 790., 45.], # lower right |
| 433 | + ] |
| 434 | + for nn, todo in enumerate(todos): |
| 435 | + print(todo) |
| 436 | + fig, axs = plt.subplots(constrained_layout=True, dpi=100) |
| 437 | + axs.plot(range(10), label='Boo1') |
| 438 | + leg = fig.legend(loc=todo, outside=outside[nn]) |
| 439 | + renderer = fig.canvas.get_renderer() |
| 440 | + fig.canvas.draw() |
| 441 | + assert_allclose(axs.get_window_extent(renderer=renderer).extents, |
| 442 | + axbb[nn]) |
| 443 | + assert_allclose(leg.get_window_extent(renderer=renderer).extents, |
| 444 | + legbb[nn]) |
| 445 | + |
| 446 | + |
401 | 447 | @image_comparison(['legend_stackplot.png']) |
402 | 448 | def test_legend_stackplot(): |
403 | 449 | """Test legend for PolyCollection using stackplot.""" |
|
0 commit comments