2015-06-03 22 views
5

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

problem

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] 
+0

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. –

+0

Die Eingabedaten sind Standard GFS meteorologische Daten. Ich werde den Beitrag mit einigen Darstellungen der Daten bearbeiten. – Laxsnor

Antwort

1

ich scheinen, wie so das Problem gelöst zu haben:

resolved issue

Was musste ich Do hat die Daten an das gebunden, was auf der Grundkarte angezeigt werden kann. Mein Eingabe-Dataset war ein globaler Datensatz, und wenn ich ihn gebunden habe (siehe die weißen Bereiche unten), wurden die Konturetiketten hauptsächlich innerhalb der Kartengrenzen angezeigt. Dies scheint immer noch wie ein Fehler zu sein - meine Wahl eines Anzeigebereichs ändert die Positionen der Konturbeschriftungen in fast jedem anderen meteorologischen Grafikprogramm (wie GrADS), aber ich werde das für jetzt markiert markieren.