<div dir="ltr"><div><div><div>Thomas,<br><br></div>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 -> <a href="https://andnovar.files.wordpress.com/2015/08/screenshot-from-2015-08-03-175714.png">https://andnovar.files.wordpress.com/2015/08/screenshot-from-2015-08-03-175714.png</a><br><br></div>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.<br><br></div><div>I got another question as well, I am getting troubles with the onHilite event (<a href="https://github.com/kivy-garden/garden.matplotlib/issues/19">https://github.com/kivy-garden/garden.matplotlib/issues/19</a>). I think it is related to the TimerBase. Can anyone tell me a little bit more about the TimerBase.<br><br></div><div>Thanks, Andres<br></div><div><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 8, 2015 at 8:22 PM, Thomas Caswell <span dir="ltr"><<a href="mailto:tcaswell@gmail.com" target="_blank">tcaswell@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Andres,<div><br></div><div>Have you made any progress on this?</div><div><br></div><div>Using the code in integral_demo.py</div><div><br></div><div>```python</div><div><br></div><div><div>import numpy as np</div><div>import matplotlib.pyplot as plt</div><div>from matplotlib.patches import Polygon</div><div><br></div><div><br></div><div>def func(x):</div><div>    return (x - 3) * (x - 5) * (x - 7) + 85</div><div><br></div><div><br></div><div>a, b = 2, 9  # integral limits</div><div><br></div><div># Make the shaded region</div><div>ix = np.linspace(a, b)</div><div>iy = func(ix)</div><div>verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]</div><div>poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')</div></div><div>pth = poly.get_path()</div><div>```</div><div><br></div><div>which if you look at the vertices and codes on both 1.4.3 and current(ish) master you get</div><div><br></div><div>```</div><div><div>In [73]: pth.vertices</div><div>Out[74]: </div><div>array([[   2.        ,    0.        ],</div><div>       [   2.        ,   70.        ],</div><div>       [   2.14285714,   73.10495627],</div><div>       [   2.28571429,   75.86005831],</div><div>       [   2.42857143,   78.28279883],</div><div>       [   2.57142857,   80.39067055],</div><div>       [   2.71428571,   82.20116618],</div><div>       [   2.85714286,   83.73177843],</div><div>       [   3.        ,   85.        ],</div><div>       [   3.14285714,   86.02332362],</div><div>       [   3.28571429,   86.81924198],</div><div>       [   3.42857143,   87.40524781],</div><div>       [   3.57142857,   87.79883382],</div><div>       [   3.71428571,   88.01749271],</div><div>       [   3.85714286,   88.0787172 ],</div><div>       [   4.        ,   88.        ],</div><div>       [   4.14285714,   87.79883382],</div><div>       [   4.28571429,   87.49271137],</div><div>       [   4.42857143,   87.09912536],</div><div>       [   4.57142857,   86.63556851],</div><div>       [   4.71428571,   86.11953353],</div><div>       [   4.85714286,   85.56851312],</div><div>       [   5.        ,   85.        ],</div><div>       [   5.14285714,   84.43148688],</div><div>       [   5.28571429,   83.88046647],</div><div>       [   5.42857143,   83.36443149],</div><div>       [   5.57142857,   82.90087464],</div><div>       [   5.71428571,   82.50728863],</div><div>       [   5.85714286,   82.20116618],</div><div>       [   6.        ,   82.        ],</div><div>       [   6.14285714,   81.9212828 ],</div><div>       [   6.28571429,   81.98250729],</div><div>       [   6.42857143,   82.20116618],</div><div>       [   6.57142857,   82.59475219],</div><div>       [   6.71428571,   83.18075802],</div><div>       [   6.85714286,   83.97667638],</div><div>       [   7.        ,   85.        ],</div><div>       [   7.14285714,   86.26822157],</div><div>       [   7.28571429,   87.79883382],</div><div>       [   7.42857143,   89.60932945],</div><div>       [   7.57142857,   91.71720117],</div><div>       [   7.71428571,   94.13994169],</div><div>       [   7.85714286,   96.89504373],</div><div>       [   8.        ,  100.        ],</div><div>       [   8.14285714,  103.47230321],</div><div>       [   8.28571429,  107.32944606],</div><div>       [   8.42857143,  111.58892128],</div><div>       [   8.57142857,  116.26822157],</div><div>       [   8.71428571,  121.38483965],</div><div>       [   8.85714286,  126.95626822],</div><div>       [   9.        ,  133.        ],</div><div>       [   9.        ,    0.        ],</div><div>       [   2.        ,    0.        ]])</div><div><br></div><div>In [75]: pth.codes</div><div>Out[75]: </div><div>array([ 1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,</div><div>        2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,</div><div>        2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,</div><div>        2, 79], dtype=uint8)</div></div><div><br></div><div>```</div><div><br></div><div>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.</div><div><br></div><div>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!</div><div><br></div><div>Tom</div></div><div class=""><div class="h5"><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 14, 2015 at 11:26 AM Jens Nielsen <<a href="mailto:jenshnielsen@gmail.com" target="_blank">jenshnielsen@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">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. <span style="line-height:1.5;font-size:13.2px">It is untested, unmaintained and officially discouraged: <a href="http://matplotlib.org/faq/usage_faq.html#what-is-a-backend" target="_blank">http://matplotlib.org/faq/usage_faq.html#what-is-a-backend</a> I would recommend you to use GTKAgg instead. </span><div><div><div><br></div><div>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 <div><br></div><div>I guess the issue is likely a result of the large C++ refactoring in master. </div><div><br></div><div>best </div><div>Jens</div><div><br></div><div><br><div><div><br></div></div></div></div></div></div></div><br><div class="gmail_quote"></div><div class="gmail_quote"><div dir="ltr">fre. 14. aug. 2015 kl. 15.21 skrev Thomas Caswell <<a href="mailto:tcaswell@gmail.com" target="_blank">tcaswell@gmail.com</a>>:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Please keep all discussion on the mailing list (<a href="mailto:matplotlib-devel@python.org" target="_blank">matplotlib-devel@python.org</a>).</div><div><br></div>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).<div><br></div><div>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?<br><div><br></div><div>Tom<br><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 14, 2015 at 9:05 AM Andrés Vargas <<a href="mailto:andnovar@gmail.com" target="_blank">andnovar@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello Tom,<div><br></div><div>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').</div><div><br></div><div>Thanks, Andres</div></div></blockquote></div></div></div></div><div dir="ltr"><div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 14, 2015 at 8:13 AM, Thomas Caswell <span dir="ltr"><<a href="mailto:tcaswell@gmail.com" target="_blank">tcaswell@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p dir="ltr">Did you mean 1.4.1 instead of 1.5.1 ?</p>
<p dir="ltr">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.</p>
<p dir="ltr">Tom</p>
<br><div class="gmail_quote"><div><div><div dir="ltr">On Wed, Aug 12, 2015, 1:57 PM Andrés Vargas <<a href="mailto:andnovar@gmail.com" target="_blank">andnovar@gmail.com</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><div dir="ltr"><div><div>Hello,<br><br></div>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.<br><br></div>Thanks, Andres<br></div></div></div>
------------------------------------------------------------------------------<br>
_______________________________________________<br>
Matplotlib-devel mailing list<br>
<a href="mailto:Matplotlib-devel@lists.sourceforge.net" target="_blank">Matplotlib-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/matplotlib-devel" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/matplotlib-devel</a><br>
</blockquote></div>
</blockquote></div><br><br clear="all"><div><br></div>
</div></div></div></blockquote></div></div></div></div><div dir="ltr"><div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></div></div></div></div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_______________________________________________<br>
Matplotlib-devel mailing list<br>
<a href="mailto:Matplotlib-devel@python.org" target="_blank">Matplotlib-devel@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/matplotlib-devel" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/matplotlib-devel</a><br>
</blockquote></div>
</blockquote></div>
</div></div></blockquote></div></div></div></div></div></div></div>