[Matplotlib-devel] [matplotlib-devel] matplotlib 1.5.1 closed path in draw_path when it is not necessary closed
Andrés Vargas
andnovar at gmail.com
Wed Sep 9 11:00:00 CEST 2015
Thomas,
The problem is not in the Polygon class, rather it is in the method
convert_path_to_polygons from _path.h in matplotlib 1.5dev1 and _path.cpp
in matplotlib 1.4.3 . I print the polygons result from converting the path
to polygon in the files attached. The polygons from this figure ->
https://andnovar.files.wordpress.com/2015/08/screenshot-from-2015-08-03-175714.png
There is something definitely not right from what you can see in the files.
What I did temporary is that when is version >= 1.5 it will not consider
the last two vertices which seems repeated in most of the cases.
I got another question as well, I am getting troubles with the onHilite
event (https://github.com/kivy-garden/garden.matplotlib/issues/19). I think
it is related to the TimerBase. Can anyone tell me a little bit more about
the TimerBase.
Thanks, Andres
On Tue, Sep 8, 2015 at 8:22 PM, Thomas Caswell <tcaswell at gmail.com> wrote:
> Andres,
>
> Have you made any progress on this?
>
> Using the code in integral_demo.py
>
> ```python
>
> import numpy as np
> import matplotlib.pyplot as plt
> from matplotlib.patches import Polygon
>
>
> def func(x):
> return (x - 3) * (x - 5) * (x - 7) + 85
>
>
> a, b = 2, 9 # integral limits
>
> # Make the shaded region
> ix = np.linspace(a, b)
> iy = func(ix)
> verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]
> poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')
> pth = poly.get_path()
> ```
>
> which if you look at the vertices and codes on both 1.4.3 and current(ish)
> master you get
>
> ```
> In [73]: pth.vertices
> Out[74]:
> array([[ 2. , 0. ],
> [ 2. , 70. ],
> [ 2.14285714, 73.10495627],
> [ 2.28571429, 75.86005831],
> [ 2.42857143, 78.28279883],
> [ 2.57142857, 80.39067055],
> [ 2.71428571, 82.20116618],
> [ 2.85714286, 83.73177843],
> [ 3. , 85. ],
> [ 3.14285714, 86.02332362],
> [ 3.28571429, 86.81924198],
> [ 3.42857143, 87.40524781],
> [ 3.57142857, 87.79883382],
> [ 3.71428571, 88.01749271],
> [ 3.85714286, 88.0787172 ],
> [ 4. , 88. ],
> [ 4.14285714, 87.79883382],
> [ 4.28571429, 87.49271137],
> [ 4.42857143, 87.09912536],
> [ 4.57142857, 86.63556851],
> [ 4.71428571, 86.11953353],
> [ 4.85714286, 85.56851312],
> [ 5. , 85. ],
> [ 5.14285714, 84.43148688],
> [ 5.28571429, 83.88046647],
> [ 5.42857143, 83.36443149],
> [ 5.57142857, 82.90087464],
> [ 5.71428571, 82.50728863],
> [ 5.85714286, 82.20116618],
> [ 6. , 82. ],
> [ 6.14285714, 81.9212828 ],
> [ 6.28571429, 81.98250729],
> [ 6.42857143, 82.20116618],
> [ 6.57142857, 82.59475219],
> [ 6.71428571, 83.18075802],
> [ 6.85714286, 83.97667638],
> [ 7. , 85. ],
> [ 7.14285714, 86.26822157],
> [ 7.28571429, 87.79883382],
> [ 7.42857143, 89.60932945],
> [ 7.57142857, 91.71720117],
> [ 7.71428571, 94.13994169],
> [ 7.85714286, 96.89504373],
> [ 8. , 100. ],
> [ 8.14285714, 103.47230321],
> [ 8.28571429, 107.32944606],
> [ 8.42857143, 111.58892128],
> [ 8.57142857, 116.26822157],
> [ 8.71428571, 121.38483965],
> [ 8.85714286, 126.95626822],
> [ 9. , 133. ],
> [ 9. , 0. ],
> [ 2. , 0. ]])
>
> In [75]: pth.codes
> Out[75]:
> array([ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 79], dtype=uint8)
>
> ```
>
> which is is both cases closed due to the `closed` kwarg on the `Polygon`
> `__init__`, if you change this to `False` you get back open paths.
>
> The backend API has not changed between 1.4.3 and current master, you
> should be able to develop a backend which will work with both. If you have
> found API breaks we would really like to know about them!
>
> Tom
>
> On Fri, Aug 14, 2015 at 11:26 AM Jens Nielsen <jenshnielsen at gmail.com>
> wrote:
>
>> I can reproduce the problem with the GTK backend but not the GTKAgg or
>> GTKCairo backends. Unless you have some specific reason for using the GTK
>> backend I would strongly recommend against it. It is untested,
>> unmaintained and officially discouraged:
>> http://matplotlib.org/faq/usage_faq.html#what-is-a-backend I would
>> recommend you to use GTKAgg instead.
>>
>> Furthermore the GDK toolkit, used in that backend, has been dropped from
>> GTK3 which officially uses Cairo internally and thus Matplotlib only
>> supports GTK3Agg and GTK3Cario
>>
>> I guess the issue is likely a result of the large C++ refactoring in
>> master.
>>
>> best
>> Jens
>>
>>
>>
>>
>> fre. 14. aug. 2015 kl. 15.21 skrev Thomas Caswell <tcaswell at gmail.com>:
>>
>>> Please keep all discussion on the mailing list (
>>> matplotlib-devel at python.org).
>>>
>>> Being pedantic about versions, current master is v1.5.0dev1 , not 1.5.1
>>> (which will be the first bug fix release in the 1.5 series which may or may
>>> not ever happen).
>>>
>>> I don't have gtk installed to easily test this and it looks fine with
>>> qt4agg, can you provide a minimal script and the code paths from a simple
>>> polygon?
>>>
>>> Tom
>>>
>>> On Fri, Aug 14, 2015 at 9:05 AM Andrés Vargas <andnovar at gmail.com>
>>> wrote:
>>>
>>>> Hello Tom,
>>>>
>>>> Thanks for your prompt reply. I am using the function
>>>> path.to_polygons() and that gives me a non-closed path in matplotlib 1.4.3
>>>> (last stable release) and give me a closed path in 1.5.1 (master from
>>>> github). You can see the problem if you run integral_demo.py with
>>>> matplotlib 1.5.1 master with matplotlib.use('gtk').
>>>>
>>>> Thanks, Andres
>>>>
>>>
>>>> On Fri, Aug 14, 2015 at 8:13 AM, Thomas Caswell <tcaswell at gmail.com>
>>>> wrote:
>>>>
>>>>> Did you mean 1.4.1 instead of 1.5.1 ?
>>>>>
>>>>> Exactly which paths are you looking at and how are you generating then
>>>>> on the mpl side? We have many ways to generate the paths and there maybe
>>>>> inconsistence in how closed paths are handled.
>>>>>
>>>>> Tom
>>>>>
>>>>> On Wed, Aug 12, 2015, 1:57 PM Andrés Vargas <andnovar at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> My name is Andres I am developing a backend for kivy. I was initially
>>>>>> developing for 1.5.1 and I found that the paths are coming with the initial
>>>>>> vertex at the end of the list. Does anyone know whether this is change in
>>>>>> the way paths are sent ? and how can be fixed coming from 1.4.3 since I am
>>>>>> developing the backend for that version.
>>>>>>
>>>>>> Thanks, Andres
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> _______________________________________________
>>>>>> Matplotlib-devel mailing list
>>>>>> Matplotlib-devel at lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>> Matplotlib-devel mailing list
>>> Matplotlib-devel at python.org
>>> https://mail.python.org/mailman/listinfo/matplotlib-devel
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20150909/2afd70a6/attachment-0001.html>
-------------- next part --------------
[array([[ 0., 0.],
[ 101., 0.]]), array([[ 0., 101.],
[ 0., 0.]])]
[array([[ 80., 48.],
[ 101., 48.]]), array([[ 80., 101.],
[ 80., 48.]])]
[array([[ 80., 48.],
[ 101., 48.]]), array([[ 80., 101.],
[ 80., 48.]])]
[array([[ 179.2, 48. ]])]
[array([[ 278.4, 48. ]])]
[array([[ 377.6, 48. ]])]
[array([[ 476.8, 48. ]])]
[array([[ 114.72, 48. ]])]
[array([[ 213.92, 48. ]])]
[array([[ 313.12, 48. ]])]
[array([[ 412.32, 48. ]])]
[array([[ 511.52, 48. ]])]
[array([[ 97.36, 220.8 ]])]
[array([[ 196.56, 355.2 ]])]
[array([[ 295.76, 297.6 ]])]
[array([[ 394.96, 374.4 ]])]
[array([[ 494.16, 288. ]])]
[array([[ 132.08, 259.2 ]])]
[array([[ 231.28, 307.2 ]])]
[array([[ 330.48, 355.2 ]])]
[array([[ 429.68, 211.2 ]])]
[array([[ 528.88, 259.2 ]])]
[array([[ 80., 432.]])]
[array([[ 576., 48.]])]
[array([[ 80., 48.],
[ 80., 101.]])]
[array([[ 80., 48.],
[ 101., 48.]])]
[array([[ 457.4, 369.2]])]
[array([[ 463.8, 401.6]])]
[array([[ 463.8, 376.6]])]
[array([[ 0., 0.],
[ 101., 0.]]), array([[ 0., 101.],
[ 0., 0.]])]
[array([[ 80., 48.],
[ 101., 48.]]), array([[ 80., 101.],
[ 80., 48.]])]
[array([[ 80., 48.],
[ 101., 48.]]), array([[ 80., 101.],
[ 80., 48.]])]
[array([[ 179.2, 48. ]])]
[array([[ 278.4, 48. ]])]
[array([[ 377.6, 48. ]])]
[array([[ 476.8, 48. ]])]
[array([[ 114.72, 48. ]])]
[array([[ 213.92, 48. ]])]
[array([[ 313.12, 48. ]])]
[array([[ 412.32, 48. ]])]
[array([[ 511.52, 48. ]])]
[array([[ 97.36, 220.8 ]])]
[array([[ 196.56, 355.2 ]])]
[array([[ 295.76, 297.6 ]])]
[array([[ 394.96, 374.4 ]])]
[array([[ 494.16, 288. ]])]
[array([[ 132.08, 259.2 ]])]
[array([[ 231.28, 307.2 ]])]
[array([[ 330.48, 355.2 ]])]
[array([[ 429.68, 211.2 ]])]
[array([[ 528.88, 259.2 ]])]
[array([[ 80., 432.]])]
[array([[ 576., 48.]])]
[array([[ 80., 48.],
[ 80., 101.]])]
[array([[ 80., 48.],
[ 101., 48.]])]
[array([[ 457.4, 369.2]])]
[array([[ 463.8, 401.6]])]
[array([[ 463.8, 376.6]])]
[array([[ 0., 0.],
[ 500., 0.],
[ 500., 450.],
[ 0., 450.],
[ 0., 0.]])]
[array([[ 62.5, 45. ],
[ 450. , 45. ],
[ 450. , 405. ],
[ 62.5, 405. ],
[ 62.5, 45. ]])]
[array([[ 62.5 , 45. ],
[ 89.625, 45. ],
[ 89.625, 225. ],
[ 62.5 , 225. ],
[ 62.5 , 45. ]])]
[array([[ 140. , 45. ],
[ 167.125, 45. ],
[ 167.125, 360. ],
[ 140. , 360. ],
[ 140. , 45. ]])]
[array([[ 217.5 , 45. ],
[ 244.625, 45. ],
[ 244.625, 315. ],
[ 217.5 , 315. ],
[ 217.5 , 45. ]])]
[array([[ 295. , 45. ],
[ 322.125, 45. ],
[ 322.125, 360. ],
[ 295. , 360. ],
[ 295. , 45. ]])]
[array([[ 372.5 , 45. ],
[ 399.625, 45. ],
[ 399.625, 288. ],
[ 372.5 , 288. ],
[ 372.5 , 45. ]])]
[array([[ 89.625, 45. ],
[ 116.75 , 45. ],
[ 116.75 , 270. ],
[ 89.625, 270. ],
[ 89.625, 45. ]])]
[array([[ 167.125, 45. ],
[ 194.25 , 45. ],
[ 194.25 , 333. ],
[ 167.125, 333. ],
[ 167.125, 45. ]])]
[array([[ 244.625, 45. ],
[ 271.75 , 45. ],
[ 271.75 , 351. ],
[ 244.625, 351. ],
[ 244.625, 45. ]])]
[array([[ 322.125, 45. ],
[ 349.25 , 45. ],
[ 349.25 , 225. ],
[ 322.125, 225. ],
[ 322.125, 45. ]])]
[array([[ 399.625, 45. ],
[ 426.75 , 45. ],
[ 426.75 , 270. ],
[ 399.625, 270. ],
[ 399.625, 45. ]])]
[array([[ 76.0625, 207. ],
[ 76.0625, 243. ]])]
[array([[ 153.5625, 333. ],
[ 153.5625, 387. ]])]
[array([[ 231.0625, 279. ],
[ 231.0625, 351. ]])]
[array([[ 308.5625, 351. ],
[ 308.5625, 369. ]])]
[array([[ 386.0625, 270. ],
[ 386.0625, 306. ]])]
[array([[ 103.1875, 243. ],
[ 103.1875, 297. ]])]
[array([[ 180.6875, 288. ],
[ 180.6875, 378. ]])]
[array([[ 258.1875, 333. ],
[ 258.1875, 369. ]])]
[array([[ 335.6875, 198. ],
[ 335.6875, 252. ]])]
[array([[ 413.1875, 243. ],
[ 413.1875, 297. ]])]
[array([[ 62.5, 405. ],
[ 450. , 405. ]])]
[array([[ 450., 45.],
[ 450., 405.]])]
[array([[ 62.5, 45. ],
[ 62.5, 405. ]])]
[array([[ 62.5, 45. ],
[ 450. , 45. ]])]
[array([[ 331.4, 342.2],
[ 442. , 342.2],
[ 442. , 397. ],
[ 331.4, 397. ],
[ 331.4, 342.2]])]
[array([[ 337.8, 374.6],
[ 369.8, 374.6],
[ 369.8, 385.8],
[ 337.8, 385.8],
[ 337.8, 374.6]])]
[array([[ 337.8, 349.6],
[ 369.8, 349.6],
[ 369.8, 360.8],
[ 337.8, 360.8],
[ 337.8, 349.6]])]
-------------- next part --------------
[array([[ 0., 0.],
[ 101., 0.],
[ 0., 0.],
[ 0., 0.]]), array([[ 0., 101.],
[ 0., 101.],
[ 0., 101.]]), array([[ 0., 0.],
[ 0., 0.]])]
[array([[ 80., 48.],
[ 101., 48.],
[ 80., 48.],
[ 80., 48.]]), array([[ 80., 101.],
[ 80., 101.],
[ 80., 101.]]), array([[ 80., 48.],
[ 80., 48.]])]
[array([[ 80., 48.],
[ 101., 48.],
[ 80., 48.],
[ 80., 48.]]), array([[ 80., 101.],
[ 80., 101.],
[ 80., 101.]]), array([[ 80., 48.],
[ 80., 48.]])]
[array([[ 179.2, 48. ],
[ 179.2, 48. ]])]
[array([[ 278.4, 48. ],
[ 278.4, 48. ]])]
[array([[ 377.6, 48. ],
[ 377.6, 48. ]])]
[array([[ 476.8, 48. ],
[ 476.8, 48. ]])]
[array([[ 114.72, 48. ],
[ 114.72, 48. ]])]
[array([[ 213.92, 48. ],
[ 213.92, 48. ]])]
[array([[ 313.12, 48. ],
[ 313.12, 48. ]])]
[array([[ 412.32, 48. ],
[ 412.32, 48. ]])]
[array([[ 511.52, 48. ],
[ 511.52, 48. ]])]
[array([[ 97.36, 220.8 ],
[ 97.36, 220.8 ]])]
[array([[ 196.56, 355.2 ],
[ 196.56, 355.2 ]])]
[array([[ 295.76, 297.6 ],
[ 295.76, 297.6 ]])]
[array([[ 394.96, 374.4 ],
[ 394.96, 374.4 ]])]
[array([[ 494.16, 288. ],
[ 494.16, 288. ]])]
[array([[ 132.08, 259.2 ],
[ 132.08, 259.2 ]])]
[array([[ 231.28, 307.2 ],
[ 231.28, 307.2 ]])]
[array([[ 330.48, 355.2 ],
[ 330.48, 355.2 ]])]
[array([[ 429.68, 211.2 ],
[ 429.68, 211.2 ]])]
[array([[ 528.88, 259.2 ],
[ 528.88, 259.2 ]])]
[array([[ 80., 432.],
[ 80., 432.]])]
[array([[ 576., 48.],
[ 576., 48.]])]
[array([[ 80., 48.],
[ 101., 48.],
[ 80., 48.]])]
[array([[ 80., 48.],
[ 80., 101.],
[ 80., 48.]])]
[array([[ 457.4, 369.2],
[ 457.4, 369.2]])]
[array([[ 463.8, 401.6],
[ 463.8, 401.6]])]
[array([[ 463.8, 376.6],
[ 463.8, 376.6]])]
[array([[ 0., 0.],
[ 101., 0.],
[ 0., 0.],
[ 0., 0.]]), array([[ 0., 101.],
[ 0., 101.],
[ 0., 101.]]), array([[ 0., 0.],
[ 0., 0.]])]
[array([[ 80., 48.],
[ 101., 48.],
[ 80., 48.],
[ 80., 48.]]), array([[ 80., 101.],
[ 80., 101.],
[ 80., 101.]]), array([[ 80., 48.],
[ 80., 48.]])]
[array([[ 80., 48.],
[ 101., 48.],
[ 80., 48.],
[ 80., 48.]]), array([[ 80., 101.],
[ 80., 101.],
[ 80., 101.]]), array([[ 80., 48.],
[ 80., 48.]])]
[array([[ 179.2, 48. ],
[ 179.2, 48. ]])]
[array([[ 278.4, 48. ],
[ 278.4, 48. ]])]
[array([[ 377.6, 48. ],
[ 377.6, 48. ]])]
[array([[ 476.8, 48. ],
[ 476.8, 48. ]])]
[array([[ 114.72, 48. ],
[ 114.72, 48. ]])]
[array([[ 213.92, 48. ],
[ 213.92, 48. ]])]
[array([[ 313.12, 48. ],
[ 313.12, 48. ]])]
[array([[ 412.32, 48. ],
[ 412.32, 48. ]])]
[array([[ 511.52, 48. ],
[ 511.52, 48. ]])]
[array([[ 97.36, 220.8 ],
[ 97.36, 220.8 ]])]
[array([[ 196.56, 355.2 ],
[ 196.56, 355.2 ]])]
[array([[ 295.76, 297.6 ],
[ 295.76, 297.6 ]])]
[array([[ 394.96, 374.4 ],
[ 394.96, 374.4 ]])]
[array([[ 494.16, 288. ],
[ 494.16, 288. ]])]
[array([[ 132.08, 259.2 ],
[ 132.08, 259.2 ]])]
[array([[ 231.28, 307.2 ],
[ 231.28, 307.2 ]])]
[array([[ 330.48, 355.2 ],
[ 330.48, 355.2 ]])]
[array([[ 429.68, 211.2 ],
[ 429.68, 211.2 ]])]
[array([[ 528.88, 259.2 ],
[ 528.88, 259.2 ]])]
[array([[ 80., 432.],
[ 80., 432.]])]
[array([[ 576., 48.],
[ 576., 48.]])]
[array([[ 80., 48.],
[ 101., 48.],
[ 80., 48.]])]
[array([[ 80., 48.],
[ 80., 101.],
[ 80., 48.]])]
[array([[ 457.4, 369.2],
[ 457.4, 369.2]])]
[array([[ 463.8, 401.6],
[ 463.8, 401.6]])]
[array([[ 463.8, 376.6],
[ 463.8, 376.6]])]
[array([[ 0., 0.],
[ 500., 0.],
[ 500., 450.],
[ 0., 450.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])]
[array([[ 62.5, 45. ],
[ 450. , 45. ],
[ 450. , 405. ],
[ 62.5, 405. ],
[ 62.5, 45. ],
[ 62.5, 45. ],
[ 62.5, 45. ]])]
[array([[ 62.5 , 45. ],
[ 89.625, 45. ],
[ 89.625, 225. ],
[ 62.5 , 225. ],
[ 62.5 , 45. ],
[ 62.5 , 45. ],
[ 62.5 , 45. ]])]
[array([[ 140. , 45. ],
[ 167.125, 45. ],
[ 167.125, 360. ],
[ 140. , 360. ],
[ 140. , 45. ],
[ 140. , 45. ],
[ 140. , 45. ]])]
[array([[ 217.5 , 45. ],
[ 244.625, 45. ],
[ 244.625, 315. ],
[ 217.5 , 315. ],
[ 217.5 , 45. ],
[ 217.5 , 45. ],
[ 217.5 , 45. ]])]
[array([[ 295. , 45. ],
[ 322.125, 45. ],
[ 322.125, 360. ],
[ 295. , 360. ],
[ 295. , 45. ],
[ 295. , 45. ],
[ 295. , 45. ]])]
[array([[ 372.5 , 45. ],
[ 399.625, 45. ],
[ 399.625, 288. ],
[ 372.5 , 288. ],
[ 372.5 , 45. ],
[ 372.5 , 45. ],
[ 372.5 , 45. ]])]
[array([[ 89.625, 45. ],
[ 116.75 , 45. ],
[ 116.75 , 270. ],
[ 89.625, 270. ],
[ 89.625, 45. ],
[ 89.625, 45. ],
[ 89.625, 45. ]])]
[array([[ 167.125, 45. ],
[ 194.25 , 45. ],
[ 194.25 , 333. ],
[ 167.125, 333. ],
[ 167.125, 45. ],
[ 167.125, 45. ],
[ 167.125, 45. ]])]
[array([[ 244.625, 45. ],
[ 271.75 , 45. ],
[ 271.75 , 351. ],
[ 244.625, 351. ],
[ 244.625, 45. ],
[ 244.625, 45. ],
[ 244.625, 45. ]])]
[array([[ 322.125, 45. ],
[ 349.25 , 45. ],
[ 349.25 , 225. ],
[ 322.125, 225. ],
[ 322.125, 45. ],
[ 322.125, 45. ],
[ 322.125, 45. ]])]
[array([[ 399.625, 45. ],
[ 426.75 , 45. ],
[ 426.75 , 270. ],
[ 399.625, 270. ],
[ 399.625, 45. ],
[ 399.625, 45. ],
[ 399.625, 45. ]])]
[array([[ 76.0625, 207. ],
[ 76.0625, 243. ],
[ 76.0625, 207. ]])]
[array([[ 153.5625, 333. ],
[ 153.5625, 387. ],
[ 153.5625, 333. ]])]
[array([[ 231.0625, 279. ],
[ 231.0625, 351. ],
[ 231.0625, 279. ]])]
[array([[ 308.5625, 351. ],
[ 308.5625, 369. ],
[ 308.5625, 351. ]])]
[array([[ 386.0625, 270. ],
[ 386.0625, 306. ],
[ 386.0625, 270. ]])]
[array([[ 103.1875, 243. ],
[ 103.1875, 297. ],
[ 103.1875, 243. ]])]
[array([[ 180.6875, 288. ],
[ 180.6875, 378. ],
[ 180.6875, 288. ]])]
[array([[ 258.1875, 333. ],
[ 258.1875, 369. ],
[ 258.1875, 333. ]])]
[array([[ 335.6875, 198. ],
[ 335.6875, 252. ],
[ 335.6875, 198. ]])]
[array([[ 413.1875, 243. ],
[ 413.1875, 297. ],
[ 413.1875, 243. ]])]
[array([[ 62.5, 405. ],
[ 450. , 405. ],
[ 62.5, 405. ]])]
[array([[ 450., 45.],
[ 450., 405.],
[ 450., 45.]])]
[array([[ 62.5, 45. ],
[ 450. , 45. ],
[ 62.5, 45. ]])]
[array([[ 62.5, 45. ],
[ 62.5, 405. ],
[ 62.5, 45. ]])]
[array([[ 331.4, 342.2],
[ 442. , 342.2],
[ 442. , 397. ],
[ 331.4, 397. ],
[ 331.4, 342.2],
[ 331.4, 342.2],
[ 331.4, 342.2]])]
[array([[ 337.8, 374.6],
[ 369.8, 374.6],
[ 369.8, 385.8],
[ 337.8, 385.8],
[ 337.8, 374.6],
[ 337.8, 374.6],
[ 337.8, 374.6]])]
[array([[ 337.8, 349.6],
[ 369.8, 349.6],
[ 369.8, 360.8],
[ 337.8, 360.8],
[ 337.8, 349.6],
[ 337.8, 349.6],
[ 337.8, 349.6]])]
More information about the Matplotlib-devel
mailing list