matplotlib / basemap

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

Strange lines appear when using pcolormesh with nonzero alpha value #480

Open ricitron opened 4 years ago

ricitron commented 4 years ago

When plotting data using pcolormesh on a basemap projection (or a cartopy projection) I notice strange lines appear when I set the alpha value to less than 1.

Example code:

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt

plt.clf()

dpp =1 # degrees per pixel
lons = np.arange(-180,180+dpp,dpp)
lats = -1*np.arange(-90,90+dpp,dpp)

m = Basemap(projection='robin',lon_0=0)
data = np.random.random((np.size(lats), np.size(lons)))
lons, lats = np.meshgrid(lons, lats)
x, y = m(lons, lats)

im = m.pcolormesh(x, y, x, latlon=False, cmap='RdBu')
#im = m.pcolormesh(lons, lats, data, latlon=True, cmap='RdBu')

m.colorbar(im)
plt.show()

The output shows strange lines appearing:

test1

If I instead set alpha=1 the lines disappear and the behavior is as expected:

test2

Any ideas on what the issue is or how to get pcolormesh to work with a nonzero alpha value?

efiring commented 4 years ago

This is a known problem referenced in https://github.com/matplotlib/matplotlib/issues/1188 and, I think, more comprehensively in other old matplotlib issues that elude my quick attempt to search for them. We have found no general good solutions.

pranavsai142 commented 5 months ago

Update: I figured out how to get the image to show up by using the zorder parameter. The image is zorder=2, the pcolormesh zcolor=1, and only the image can have an alpha value less than 1. Any update on this? I am facing an issue graphing gridded data using pcolormesh, Gouraud shading. When I lower the alpha value from 1, I get lines appearing. ax.pcolormesh(self.mapWindPointsLongitudes, self.mapWindPointsLatitudes, self.mapSpeeds[index], shading='gouraud', vmin=vmin, vmax=vmax, zorder=2) map_wind_10

This is at alpha=1. However the map disappeared : | map_wind_0