Ich versuche Konturen über einem gefüllten Konturdiagramm in Matplotlib für einige atmosphärische Daten zu überlagern. Meine Konturetiketten werden jedoch nicht immer auf dem Bildschirm angezeigt. Unten ist ein Beispiel:Konturbeschriftungen werden nicht angezeigt
Wie Sie sehen können, werden die Kontur Etiketten nur auf den innersten wenigen Konturen erscheinen.
Zu wissen, dass mein Konturbereich definiert ist, früher als
list(range(950,1052,4))
Ich habe den folgenden Code, um tatsächlich Grundstück:
parallels = np.arange(0.,90,5.)
basem.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
# draw meridians
meridians = np.arange(180.,360.,5.)
basem.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
basem.drawstates()
basem.drawcountries()
if clevs != 0:
cs = basem.contourf(x,y, plotted_var, clevs)
cl = basem.contour(x,y, plotted_var, clevsl, colors='k')
plt.clabel(cl, fmt="%1.0f", fontsize=8)
else:
cs = basem.contourf(x,y, plotted_var, cmap=plt.get_cmap(colorbar),
vmin = vmin, vmax = vmax)
cbar = basem.colorbar(cs, location='bottom', pad = "5%")
cbar.set_label(units)
Zusätzlich meine basemap Definition lautet:
basem = Basemap(width=5800000,height=3000000,
rsphere=(6378137.00,6356752.3142),\
resolution='h',area_thresh=1000.,projection='lcc',\
lat_1=45.,lat_2=55,lat_0=40,lon_0=-102.)
Ist das ein Fehler oder fehlt mir etwas? Ich versuche, die Verwendung von Handbuch zu vermeiden, wenn ich kann.
Die Eingabedaten sind ein globaler Datensatz (GFS-Wettermodell). x, y, erhalten durch:
lons2, lats2 = np.meshgrid(lons, lats)
x,y = basem(lons2, lats2)
wo lons, Lats sind:
lons = [0.0, 0.25, 0.5, 0.75, 1.0, ..., 359.75, 360.0]
lats = [-90, -89.75, ..., 89.75, 90]
Ich kann schätzen, dass die Rohdaten möglicherweise unter einer Lizenzvereinbarung oder etwas sind - aber eine repräsentative Annäherung von 'x',' y' und 'ploted_var' wäre nützlich, um dies zu testen/zu replizieren. –
Die Eingabedaten sind Standard GFS meteorologische Daten. Ich werde den Beitrag mit einigen Darstellungen der Daten bearbeiten. – Laxsnor