1

Ich zeichne einige Karten von angesammeltem Regen, aber sie haben unterschiedliche Farbskala und so kann ich die angezeigten Karten nicht vergleichen. Es gibt eine Möglichkeit, die Karten mit derselben Farbskala zu erhalten. Unten ist mein Code.Wie wird die gleiche Farbskala auf der Grundkarte beibehalten?

def plotea_fig(map,tite): 
    fig = pl.figure(figsize=(8,6), edgecolor='W',facecolor='W') 
    m = Basemap(projection='merc', llcrnrlat=-5.125, urcrnrlat=14.125, llcrnrlon=-80.125, urcrnrlon=-65.5, resolution='i') 
    m.drawcoastlines(linewidth = 0.8) 
    m.drawstates(linewidth = 0.3) 
    m.drawcountries(linewidth = 0.8) 
    m.drawparallels(np.arange(-5, 14.9583, 5),labels=[1,0,0,1]) 
    m.drawmeridians(np.arange(-170,-60,5),labels=[1,0,0,1]) 
    x,y = m(lons,lats) 
    CS1 = m.contourf(x,y,map, 35, cmap=pl.cm.jet_r, animated=True) 
    cb = m.colorbar(CS1, size="5%", pad="2%") 
    cb.ax.tick_params(labelsize=20) 
    pl.xlabel('LONGITUDE') 
    pl.ylabel('LATITUD') 
    pl.title(title) 
    pl.savefig(title,bbox_inches='tight', formart = 'png') 

    return m 

Antwort

2

Anstatt einfach zu sagen, Sie 35 Konturen wollen, sollten Sie festlegen, welche Konturen Sie zeichnen möchten. Zum Beispiel:

m.contourf(x, y, map, np.linspace(5, 10, 35), extend='both', 
      cmap=pl.cm.jet_r, animated=True) 

Dies gibt an, dass 35 Konturen zwischen den Werten von 5 und 10. Die extend='both' kwarg willst, dass Daten über/unter 5/10 sollten mit der oberen/unteren Farbe gefärbt sein. Dies wird Ihrer Farbleiste "spitze Enden" hinzufügen, die manche Leute nicht mögen, andere aber expliziter. Werfen Sie einen Blick auf my answer zu this question für weitere Details.