Использование расширения цветовой карты на графике общего снегопадаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование расширения цветовой карты на графике общего снегопада

Сообщение Anonymous »

Я создал карту снегопада, которую хотел, с заданными интервалами, но последний цвет в моей цветовой карте с использованием расширения = 'max' совпадает с предпоследним цветом. Я хочу, чтобы последний цвет в моем графике/карте цветов соответствовал последнему цвету моей карты цветов, а не предпоследнему цвету.
Я попробовал метод vmax и функцию cmap.set_over, но безуспешно. Что мне делать?
from datetime import datetime

import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import xarray as xr
import numpy as np
import metpy.calc as mpcalc
import netCDF4
from netCDF4 import Dataset
from metpy.units import units
from scipy.ndimage import gaussian_filter
import scipy.ndimage as ndimage
import matplotlib.colors as mcolors
from metpy.plots import USCOUNTIES

snowdata = xr.open_dataset('sfav2_CONUS_48h_2025010612.nc')

lat = snowdata['lat'][:].squeeze()
lon = snowdata['lon'][:].squeeze()
snow = snowdata['Data'][:].squeeze()
lon_2d, lat_2d = np.meshgrid(lon, lat)
snowm = gaussian_filter(snow, sigma=3.0)
snowin = snowm*39.37

nws_snowfall_colors = [
"#ffffff",# 0 inches (white)
"#daeef5",
"#bdd7e7", # 0.1 inches
"#6baed6", # 1 inch
"#3182bd", # 1-2 inches
"#08519c", # 2-3 inches
"#082694", # 3-4 inches
"#ffff96", # 6-8 inches
"#ffc400", # 8-12 inches
"#ff8700", # 12-18 inches
"#db1400", # 18-24 inches
"#9e0000", # 24-30 inches
"#690000", # 30-36 inches
"#360000", # > 36 inches
]
# Define the corresponding snowfall values (in inches)
nws_snowfall_cmap = mcolors.ListedColormap(nws_snowfall_colors)

nws_snowfall_cmap

clev_snowfall = np.concatenate((np.arange(0, .1, .1), np.arange(.1, 1, .9), np.arange(1, 4, 1), np.arange(4, 8, 2), np.arange(8,12,4), np.arange(12,42,6)))
norm = mcolors.BoundaryNorm(clev_snowfall, 14)
nws_snowfall_cmap.set_over("#360000")

datacrs = ccrs.PlateCarree()
plotcrs = ccrs.LambertConformal(central_latitude=35, central_longitude=-100,standard_parallels=(30, 60))
bounds = ([-110, -85, 33, 43])
fig = plt.figure(figsize=(14,12))
ax = fig.add_subplot(1,1,1, projection=plotcrs)
ax.set_extent(bounds, crs=ccrs.PlateCarree())
ax.add_feature(cfeature.COASTLINE.with_scale('50m'), linewidth = 0.75)
ax.add_feature(cfeature.STATES, linewidth = 2)
ax.add_feature(USCOUNTIES, edgecolor='black', linewidth = 1)
cf = ax.contourf(lon_2d, lat_2d, snowin, clev_snowfall, cmap = nws_snowfall_cmap, norm=norm, vmin = 0, vmax=42.0, extend='max', transform=datacrs)
cb = plt.colorbar(cf, orientation='horizontal', ticks = [0, .1, 1, 2, 3, 4, 6, 8, 12, 18, 24, 30, 36])


Подробнее здесь: https://stackoverflow.com/questions/793 ... wfall-plot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»