Я новый пользователь python & matplotlib, это может быть простой вопрос, но я искал в Интернете несколько часов и не мог найти решение для этого.
Я строю данные об осадках в формате NetCDF.Что я нахожу странным, так это то, что в данных нет отрицательных значений (я проверял это много раз, просто чтобы убедиться).Но значение в цветовой панели начинается с отрицательного значения (например, -0,0000312 и т. Д.).Это не имеет смысла, потому что я не делаю никаких манипуляций с данными, за исключением того, что просто выбираю часть данных из большого файла и строю его.
Так что мой код не очень к этому относится.Вот код:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
from netCDF4 import Dataset
cd progs
f=Dataset('V21_GPCP.1979-2009.nc')
lats=f.variables['lat'][:]
lons=f.variables['lon'][:]
prec=f.variables['PREC'][:]
la=lats[31:52]
lo=lons[18:83]
pre=prec[0,31:52,18:83]
m = Basemap(width=06.e6,height=05.e6,projection='gnom',lat_0=15.,lon_0=80.)
x, y = m(*np.meshgrid(lo,la))
m.drawcoastlines()
m.drawmapboundary(fill_color='lightblue')
m.drawparallels(np.arange(-90.,120.,5.),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,420.,5.),labels=[0,0,0,1])
cs=m.contourf(x,y,pre,50,cmap=plt.cm.jet)
plt.colorbar()
Вывод, который я получил для этого кода, был красивым графиком, с цветовой шкалой, начинающейся со значения -0.00001893, а остальные являются положительными значениями, и я считаю, что это правильно.Это просто минимальное значение, которое меня беспокоит.
Я хотел бы знать:
- Что-то не так в моем коде?потому что я знаю, что данные верны.
- Есть ли способ вручную изменить значение на 0?
- Правильно ли изменять значения в цветовой панели каждый раз, когда мы запускаем код,потому что для тех же данных, при следующем запуске кода значения будут выглядеть следующим образом: "-0.00001893, 2.00000000, 4.00000000, 6.00000000 и т. д."
- Я хочу настроить их на "0.0, 2.0, 4.0, 6.0и т.д. "
Спасибо, Вайшу