|
3 | 3 | from unittest import mock
|
4 | 4 |
|
5 | 5 | import numpy as np
|
| 6 | +from numpy.testing import assert_allclose |
6 | 7 | import pytest
|
7 | 8 |
|
8 | 9 | from matplotlib.testing.decorators import image_comparison
|
@@ -380,6 +381,51 @@ def test_warn_args_kwargs(self):
|
380 | 381 | "be discarded.")
|
381 | 382 |
|
382 | 383 |
|
| 384 | +def test_figure_legend_outside(): |
| 385 | + outside = [True]*9 + ['upper', 'upper', 'lower', 'lower'] |
| 386 | + print(outside) |
| 387 | + todos = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4] |
| 388 | + axbb = [[20.347556, 27.722556, 659.249, 588.833], # upper right |
| 389 | + [151.681556, 27.722556, 790.583, 588.833], # upper left |
| 390 | + [151.681556, 27.722556, 790.583, 588.833], # lower left |
| 391 | + [20.347556, 27.722556, 659.249, 588.833], # lower right |
| 392 | + [20.347556, 27.722556, 659.249, 588.833], # right |
| 393 | + [151.681556, 27.722556, 790.583, 588.833], # center left |
| 394 | + [20.347556, 27.722556, 659.249, 588.833], # center right |
| 395 | + [20.347556, 71.056556, 790.583, 588.833], # lower center |
| 396 | + [20.347556, 27.722556, 790.583, 545.499], # upper center |
| 397 | + [20.347556, 27.722556, 790.583, 545.499], # up-right,'upper' |
| 398 | + [20.347556, 27.722556, 790.583, 545.499], # up-left,'upper' |
| 399 | + [20.347556, 71.056556, 790.583, 588.833], # low-left,'lower' |
| 400 | + [20.347556, 71.056556, 790.583, 588.833], # low-right,'lower' |
| 401 | + ] |
| 402 | + legbb = [[667., 555., 790., 590.], # upper right |
| 403 | + [10., 555., 133., 590.], # upper left |
| 404 | + [10., 10., 133., 45.], # lower left |
| 405 | + [667, 10., 790., 45.], # lower right |
| 406 | + [667., 282.5, 790., 317.5], |
| 407 | + [10., 282.5, 133., 317.5], |
| 408 | + [667., 282.5, 790., 317.5], |
| 409 | + [338.5, 10., 461.5, 45.], |
| 410 | + [338.5, 555., 461.5, 590.], |
| 411 | + [667., 555., 790., 590.], # upper right |
| 412 | + [10., 555., 133., 590.], # upper left |
| 413 | + [10., 10., 133., 45.], # lower left |
| 414 | + [667, 10., 790., 45.], # lower right |
| 415 | + ] |
| 416 | + for nn, todo in enumerate(todos): |
| 417 | + print(todo) |
| 418 | + fig, axs = plt.subplots(constrained_layout=True, dpi=100) |
| 419 | + axs.plot(range(10), label='Boo1') |
| 420 | + leg = fig.legend(loc=todo, outside=outside[nn]) |
| 421 | + renderer = fig.canvas.get_renderer() |
| 422 | + fig.canvas.draw() |
| 423 | + assert_allclose(axs.get_window_extent(renderer=renderer).extents, |
| 424 | + axbb[nn]) |
| 425 | + assert_allclose(leg.get_window_extent(renderer=renderer).extents, |
| 426 | + legbb[nn]) |
| 427 | + |
| 428 | + |
383 | 429 | @image_comparison(['legend_stackplot.png'])
|
384 | 430 | def test_legend_stackplot():
|
385 | 431 | """Test legend for PolyCollection using stackplot."""
|
|
0 commit comments