matplotlib / basemap

Plot on map projections (with coastlines and political boundaries) using matplotlib
MIT License
779 stars 392 forks source link

colorbar fill whole figure #426

Open jaodan opened 6 years ago

jaodan commented 6 years ago

I use the matplotlib3.0 and basemap 1.2 to plot a map figure. The figure is correct. However, if I add colorbar by "m.colorbar(...)", the colorbar will fill the whole figure. There is no such issue for matplotlib2.2.2 and basemap1.1.

jiaozhh commented 6 years ago

The same problem that can be found in https://github.com/matplotlib/matplotlib/issues/12355

jklymak commented 6 years ago

Can you supply a self contained minimal example? Thanks!

WeatherGod commented 6 years ago

It is extremely doubtful this has anything to do with basemap, but I'll concede that I can't think of how this could happen in any case. All basemap does is performs transformations on coordinates, and provides useful map layers. Matplotlib is still doing all of the plotting.

On Mon, Oct 1, 2018 at 9:42 AM Jody Klymak notifications@github.com wrote:

Can you supply. Self contained minimal example? Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/matplotlib/basemap/issues/426#issuecomment-425911843, or mute the thread https://github.com/notifications/unsubscribe-auth/AARy-D3-kOqi6-IQ4D6tMHtJdi7cRNCvks5ughvPgaJpZM4XBV1y .

WeatherGod commented 6 years ago

Oh, waitaminute... you called enh.colorbar(). Could you try plt.colorbar() or fig.colorbar() instead?

On Mon, Oct 1, 2018 at 10:36 AM Benjamin Root ben.v.root@gmail.com wrote:

It is extremely doubtful this has anything to do with basemap, but I'll concede that I can't think of how this could happen in any case. All basemap does is performs transformations on coordinates, and provides useful map layers. Matplotlib is still doing all of the plotting.

On Mon, Oct 1, 2018 at 9:42 AM Jody Klymak notifications@github.com wrote:

Can you supply. Self contained minimal example? Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/matplotlib/basemap/issues/426#issuecomment-425911843, or mute the thread https://github.com/notifications/unsubscribe-auth/AARy-D3-kOqi6-IQ4D6tMHtJdi7cRNCvks5ughvPgaJpZM4XBV1y .

jklymak commented 6 years ago

colorbar changed in 3.0 so that aspect ratios mean something a bit different. So its possible there is a bad interaction there. But an example that doesn't require external data sets would help

jklymak commented 6 years ago

This is an axes_toolkit/colorbar/bbox_inches=tight interaction that I can reproduce in Matplotlib.

I'll leave this open at @WeatherGod's discretion; one could imagine basemap not relying on axes_grid for colorbar placement. But thats not to minimize the fact that there is a bug in 3.0 with the above combination....

jklymak commented 6 years ago

Just to be clea, this is only an issue if you do: plt.savefig(..., bbox_inches='tight')? Otherwise I cannot reproduce..

jaodan commented 6 years ago

@jklymak is correct. The issue come from plt.savefig(...,bbox_inchs='tight'). Without this option, everything is fine.

CommonClimate commented 5 years ago

The issue come from plt.savefig(...,bbox_inchs='tight'). Without this option, everything is fine.

Well that is a pretty useful option. Any idea when we go back to re-using this essential feature for producing publication-quality figures? Currently (with MPL 3.0.2) I am wasting a bunch of time editing prior scripts to reproduce some work that used to work beautifully with this option, but no longer does. Is there a workaround for producing figures that minimize white space?

yongjias commented 5 years ago

The latest version has fixed this issue, just use the latest version.

CommonClimate commented 5 years ago

the latest version of matplotlib appears to be 3.0.2, which is what I am using. are you referring to another package?

WeatherGod commented 5 years ago

matplotlib v3.0.2 fixed this issue. How did you install it?

On Mon, Dec 10, 2018 at 1:36 PM Julien Emile-Geay notifications@github.com wrote:

the latest version of matplotlib appears to be 3.0.2, which is what I am using. are you referring to another package?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/matplotlib/basemap/issues/426#issuecomment-445923289, or mute the thread https://github.com/notifications/unsubscribe-auth/AARy-CzVuFliZaI9nj0LDSYESFquzsYyks5u3qmngaJpZM4XBV1y .

CommonClimate commented 5 years ago

Problem was due to running the general Spyder and not the environment-specific Spyder. Sorry for adding to the confusion.