2016-07-12 38 views
0

Ist es möglich, die grauen Begrenzungslinien um die folgende Karte zu entfernen? Ich versuche, ein Netcdf unter Verwendung matplotlib zu entwerfen.Wie entfernen Sie graue Begrenzungslinien in einer Karte, wenn Sie ein netcdf mit imshow in matplotlib plotten?

from netCDF4 import Dataset # clarify use of Dataset 
import matplotlib.pylab as plt 
fnc = Dataset(ncfile, 'r') 
lat = fnc.variables['latitude'][:] 
lon = fnc.variables['longitude'][:] 
level = fnc.variables['level'][:] 
mydata = fnc.variables['Data'][0, 0, :, :] 
plt.figure(figsize = (8, 4)) 
imgplot = plt.imshow(mydata, cmap = 'YlGn') 
plt.colorbar() 
plt.show 

enter image description here

Edit: Ich denke, die Grauwerte ein Ergebnis der fehlenden Werte/keine Daten sind.

+0

Was definiert 'Dataset'? Weil das die Ländergrenzen kennt. – cphlewis

+0

'Dataset' ist Teil des netcdf4-Moduls. Wolltest du das fragen? – user26750

+1

Könnten Sie netcdf-Datei hochladen oder es ist groß? – Serenity

Antwort

2

Diese grauen Grenzen sind ein Interpolationsartefakt von imshow. Um sie loszuwerden, tun:

imgplot = plt.imshow(mydata, cmap = 'YlGn', interpolation='none') 

Oder Grundstück durch Basemap und Kontrollzeichnung ausdrücklich, wie in this example.

+0

Danke! Ich habe eine Follow-up-Frage, die wahrscheinlich mit der Interpolation verknüpft ist, daher füge ich hier einen Link hinzu: http://stackoverflow.com/questions/38340731/how-to-ancrease-contrast-when-plotting-a-netcdf-using- imshow-in-matplotlib – user26750