I-Daten auf einer Karte am Plotten mit diesem Code:beseitigen weißen Ränder in Matplotlib/Basemap pcolor Grundstück
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from scipy.io import netcdf
ncfile = netcdf.netcdf_file(myfile.nc,'r')
lon = ncfile.variables['longitude'][:]
lat = ncfile.variables['latitude'][:]
data = ncfile.variables['mydata'][:]
ncfile.close()
m = Basemap(projection='nplaea', boundinglat=40, lon_0=270)
m.drawcoastlines(linewidth=.6, zorder=2)
m.drawparallels(np.arange(-80.,81.,20.), zorder=1)
m.drawmeridians(np.arange(-180.,181.,20.), zorder=1)
cNorm = mpl.colors.Normalize(vmin=0, vmax=np.nanmax(data))
cmap = plt.get_cmap('jet')
lons, lats = np.meshgrid(lon, lat)
x, y = m(lons, lats)
datamap = m.pcolor(x, y, data, zorder=0)
datamap.set_norm(cNorm)
plt.colorbar(datamap, cmap=cmap, norm=cNorm, shrink=0.5)
plt.savefig('figures/map_polar.png', dpi=150, bbox_inches='tight', pad_inches=0.4)
Der in diesem Bild ergibt:
Wie Sie sehen können, gibt es weiße Lücken zwischen den Rasterzellen. Wie kann ich sie loswerden?
können Sie die Datendatei überall aufstellen? – tacaswell
Leider nicht, aber es ist regelmäßig Gitterdaten. – HyperCube
Für was auch immer es wert ist, kann ich nicht reproduzieren Ihr Problem mit zufällig generierten (oder konstanten) Daten ... Welche Version von Matplotlib verwenden Sie? Vielleicht ist es ein Fehler, der behoben wurde? Außerdem wird 'pcolormesh' in diesem Fall schneller sein. Versuchen Sie, es anstelle von 'pcolor' zu verwenden. Ich bezweifle (?) Es wird Ihr Problem beheben, aber es sollte schneller sein, egal. –