<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I’m not 100% following, but can’t you just `np.roll` your data by N/2 to get it between -180 and +180 instead of 0 and 360, and set llcrnrlon=-180 and urcrnrlon=180?<div class=""><br class=""></div><div class="">I didn’t test, so sorry if that is a dumb suggestion...</div><div class=""><br class=""></div><div class="">Cheers,  Jody<br class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><br class=""></div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 10 Oct 2017, at  16:04 PM, Mauro Cavalcanti <<a href="mailto:maurobio@gmail.com" class="">maurobio@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="">Dear Ben,<br class=""><br class=""></div>Sure, I am aware of Cartopy and have been following its development. However, I am afraid it is not yet mature enough for the kind of application I have been working on (a PyQt-based multiplatform desktop application for mapping biodiversity data). Documentation is also not as good as that already available for Matplotlib/Basemap. But I surely intend to take the time to eventually port my application to Cartopy!<div class=""><br class=""></div><div class="">That said, I will be very grateful if you can help me with the 'tricky' part of my problem. I have also another test version using meshgrid instead of imshow. It looks promising because only the gridded data is displayed on the map (while imshow covers the whole map). However, as the attached image show, I have to fiddle with the grid limits when creating the mesh, and even so the grid is not yet plotted in the correct position. <br class=""></div><div class=""><br class=""></div><div class="">With warmest regards,</div></div><div class="gmail_extra" style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""><div class="gmail_quote">2017-10-10 17:25 GMT-03:00 Benjamin Root<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:ben.v.root@gmail.com" target="_blank" class="">ben.v.root@gmail.com</a>></span>:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class=""><div class=""><div class="">So, the problem here is that what you are asking for is in conflict with the settings. You are giving bounding box that starts at llcrnrlon=lon_inf and goes to urcrnrlon=lon_sup, and that is the extent of the data you are providing, too. But you want to view it in a different bounds. It is possible to get what you want, but it starts to get tricky at this point.<br class=""><br class=""></div>Before venturing further, I should point out to you that Basemap is effectively deprecated. Its support will be terminated in 2020. The CartoPy project, also built on top of matplotlib, is a far superior library, and I think would be much easier for you to use. It doesn't do everything that basemap does yet, but the things that it does do, it does better. I suggest checking it out before we go any further here.<br class=""><br class=""></div>Cheers!<br class=""></div>Ben Root<br class=""><br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Oct 10, 2017 at 2:57 PM, Mauro Cavalcanti<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class=""><div class=""><div class="">Dear Ben,<br class=""><br class=""></div>Thanks a lot again for your help and patience.<span class="Apple-converted-space"> </span><br class=""><br class="">After modifying the call to Basemap according to your suggestion:<span class=""><br class=""><br class="">m = Basemap(llcrnrlat=lat_inf, llcrnrlon=lon_inf, urcrnrlat=lat_sup, urcrnrlon=lon_sup)<br class=""><br class=""></span></div>the grid is correctly displayed where it belongs (thr west coast of Africa). But now I got a map centered at the Pacific basin, with the grid appearing on the lower left corner of it! In fact, See the attached image. I would like a conventional map centered around the Atlantic basin (ie., with center coordinates at lat_0=0 and long_0=0).</div><div class=""><br class=""></div><div class="">After using the superb Matplotlib for almost a decade (in the beginning, I even got some help here from the legendary John Hunter!), I nonetheless feel somewhat ashamed of having found a potential bug in the library...<br class=""></div><div class=""><br class=""></div>All the best,<br class=""></div><div class="m_-5291567295159115282HOEnZb"><div class="m_-5291567295159115282h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">2017-10-10 12:20 GMT-03:00 Benjamin Root<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:ben.v.root@gmail.com" target="_blank" class="">ben.v.root@gmail.com</a>></span>:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class="">Ah, the problem was that by default, the limits for a Basemap goes from -180 to 180, and -90 to 90. If you do:<br class=""><br class="">m = Basemap(llcrnrlat=lat_inf, llcrnrlon=lon_inf,<br class="">           <span class="Apple-converted-space"> </span>urcrnrlat=lat_sup, urcrnrlon=lon_sup)<br class=""><br class=""></div>Then things line up correctly, and you don't need the origin keyword argument, the transpose, or even the extent argument.<br class=""><br class=""></div>In fact, there might even be a bug, as I would have expected specifying the extent should have worked regardless of the original bounds. Might need to look into that.<br class=""><br class=""></div>Cheers!<br class=""></div>Ben Root<br class=""><br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Oct 9, 2017 at 7:54 PM, Mauro Cavalcanti<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class=""><div class="">Hi,<br class=""><br class=""></div>Thanks for you reply and suggestions.<br class=""><br class=""></div>I changed the imshow call to:<br class=""><br class="">im = m.imshow(grilla_salida, cmap='summer', extent=(lon_inf, lat_inf, lon_sup, lat_sup), aspect='auto', interpolation='none')<br class=""><br class=""></div>However, the figure is stil wrong (see attachment).<br class=""><br class=""></div>Maybe if instead of imshow, should I use meshgrid/pcolormesh?<br class=""><br class=""></div>Best regards,<br class=""></div><div class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079HOEnZb"><div class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">2017-10-09 11:29 GMT-03:00 Benjamin Root<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:ben.v.root@gmail.com" target="_blank" class="">ben.v.root@gmail.com</a>></span>:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class=""><div class=""><div class="">First, you shouldn't need to transpose your image... that'll effectively rotate the data by 90 degrees. Second, you didn't specify the extents of your image, so Basemap is putting everything starting at coordinate 0,0 in the default projection.<br class=""><br class=""></div>If you specify the extent keyword argument to imshow as the (lon1, lat1, lon2, lat2) tuple for the lower-left and upper right corners, you won't even need the origin='lower', and you definitely won't need the transpose.<br class=""><br class=""></div>Cheers!<br class=""></div>Ben Root<br class=""><br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Sun, Oct 8, 2017 at 2:33 PM, Mauro Cavalcanti<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class="">Dear ALL,</div><div class=""><br class=""></div><div class="">I have a simple dataset of longitudes/latitudes (see the attached csv file).<span class="Apple-converted-space"> </span><br class=""><br class="">From such data, I want to generate a grid like this:<br class=""><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 1 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 1 1 2 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 1 1 1 1 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 1 0 1 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 2 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 1 3 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 1 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 1 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 1 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 1 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<span class="Apple-converted-space"> </span><br class="">0 0 0 0 0 0 0 0 0 0 0 0 0<br class=""><br class="">which gives the number of data records in each cell of the grid, using one of the variables in the dataset ("spp") as a categorical (grouping) factor.<br class=""><br class="">From this grid, I then want to create a heat map, superimposed on a Matplotlib/Basemap.<br class=""><br class="">I wrote some code which does what I want (see the attachments).<br class=""><br class="">It (mostly) works, but te problem is that the grid image is not being displayed correctly: as shown in the attached figure, it appears too small, and in the lower left corner of the map, instead of where it should be (the West coast of Africa, along the Gulf of Guinea).<span class="Apple-converted-space"> </span><br class=""><br class="">Thanks in advance for any assistance you can provide.<br class=""><br class=""></div>Best regards,<span class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079m_457455388731623633HOEnZb"><font color="#888888" class=""><span class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079m_457455388731623633m_-5485353596679859117HOEnZb"><font color="#888888" class=""><br clear="all" class=""><div class=""><br class="">--<span class="Apple-converted-space"> </span><br class=""><div class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079m_457455388731623633m_-5485353596679859117m_1000018557826917125gmail_signature">Dr. Mauro J. Cavalcanti<br class="">E-mail:<span class="Apple-converted-space"> </span><a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a><br class="">Web:<span class="Apple-converted-space"> </span><a href="http://sites.google.com/site/maurobio" target="_blank" class="">http://sites.google.com/site/m<wbr class="">aurobio</a><br class="">"Life is complex. It consists of real and imaginary parts."</div></div></font></span></font></span></div><span class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079m_457455388731623633HOEnZb"><font color="#888888" class=""><br class="">______________________________<wbr class="">_________________<br class="">Matplotlib-users mailing list<br class=""><a href="mailto:Matplotlib-users@python.org" target="_blank" class="">Matplotlib-users@python.org</a><br class=""><a href="https://mail.python.org/mailman/listinfo/matplotlib-users" rel="noreferrer" target="_blank" class="">https://mail.python.org/mailma<wbr class="">n/listinfo/matplotlib-users</a><br class=""><br class=""></font></span></blockquote></div><br class=""></div></blockquote></div><br class=""><br clear="all" class=""><span class="HOEnZb"><font color="#888888" class=""><span class="m_-5291567295159115282m_2806886750797440327HOEnZb"><font color="#888888" class=""><br class="">--<span class="Apple-converted-space"> </span><br class=""><div class="m_-5291567295159115282m_2806886750797440327m_3298287048520949079m_457455388731623633gmail_signature" data-smartmail="gmail_signature">Dr. Mauro J. Cavalcanti<br class="">E-mail:<span class="Apple-converted-space"> </span><a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a><br class="">Web:<span class="Apple-converted-space"> </span><a href="http://sites.google.com/site/maurobio" target="_blank" class="">http://sites.google.com/site/m<wbr class="">aurobio</a><br class="">"Life is complex. It consists of real and imaginary parts."</div></font></span></font></span></div><span class="HOEnZb"><font color="#888888" class=""></font></span></div></div></blockquote></div><span class="HOEnZb"><font color="#888888" class=""><br class=""></font></span></div><span class="HOEnZb"><font color="#888888" class=""></font></span></blockquote></div><span class="HOEnZb"><font color="#888888" class=""><br class=""><br clear="all" class=""><br class="">--<span class="Apple-converted-space"> </span><br class=""><div class="m_-5291567295159115282m_2806886750797440327gmail_signature" data-smartmail="gmail_signature">Dr. Mauro J. Cavalcanti<br class="">E-mail:<span class="Apple-converted-space"> </span><a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a><br class="">Web:<span class="Apple-converted-space"> </span><a href="http://sites.google.com/site/maurobio" target="_blank" class="">http://sites.google.com/site/m<wbr class="">aurobio</a><br class="">"Life is complex. It consists of real and imaginary parts."</div></font></span></div></div></div></blockquote></div><br class=""></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature" data-smartmail="gmail_signature">Dr. Mauro J. Cavalcanti<br class="">E-mail:<span class="Apple-converted-space"> </span><a href="mailto:maurobio@gmail.com" target="_blank" class="">maurobio@gmail.com</a><br class="">Web:<span class="Apple-converted-space"> </span><a href="http://sites.google.com/site/maurobio" target="_blank" class="">http://sites.google.com/site/maurobio</a><br class="">"Life is complex. It consists of real and imaginary parts."</div></div><span id="cid:F0A7DDA9-0A5D-4733-9500-F3EDDFA4A298@uvic.ca"><meshgrid.py></span><span id="cid:DF33C810-BB7B-407E-9E3C-D02F341482B0@uvic.ca"><Figure_1.png></span><span id="cid:35003BC4-B529-478D-B6C4-BEF607191481@uvic.ca"><testdata.csv></span><span style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Matplotlib-users mailing list</span><br style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:Matplotlib-users@python.org" style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">Matplotlib-users@python.org</a><br style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://mail.python.org/mailman/listinfo/matplotlib-users" style="font-family: LucidaSans-Typewriter; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://mail.python.org/mailman/listinfo/matplotlib-users</a></div></blockquote></div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Sans Typewriter'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><div style="word-wrap: break-word;" class=""><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Sans Typewriter'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><div class="">--</div><div class="">Jody Klymak    </div><div class=""><a href="http://web.uvic.ca/~jklymak/" class="">http://web.uvic.ca/~jklymak/</a></div><div class=""><br class="khtml-block-placeholder"></div><div class=""><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span></div></span><br class="Apple-interchange-newline">
</div>
<br class=""></div></div></div></body></html>