gpt4 book ai didi

python - 使用 matplotlib 和 basemap 绘制带有极坐标投影的奇怪等值线图

转载 作者:行者123 更新时间:2023-11-30 23:34:49 24 4
gpt4 key购买 nike

我正在制作一些气候模型输出的极地立体投影图。对于其中一些数据,情节看起来很奇怪。例如下图中:

enter image description here

只显示了两种颜色轮廓,而实际数据应该涵盖更广泛的范围。此外,该区域的很大一部分应该是空白的,因为数据已经被 netcdf 模块屏蔽掉了(它们是未定义的)。

from netCDF4 import Dataset
import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
from pylab import *
fig_index=1
fig = plt.figure(num=fig_index, figsize=(12,7), facecolor='w')
fbot_levels = arange(0.05,1.0,0.05)
fname='alb.nc4'
ncfile = Dataset(fname, 'r', format='NETCDF4')
TS2=ncfile.variables['SIALB'][0]
LON=ncfile.variables['lon'][:]
LAT=ncfile.variables['lat'][:]
ncfile.close()
lon,lat=np.meshgrid(LON,LAT)
ax2 = plt.axes([0.2, 0.225, 0.6, 0.6])
meridians=[0,1,1,1]
m = Basemap(projection='spstere',lon_0=0,boundinglat=-45)
m.drawcoastlines()
x, y =m(lon,lat)
plt.contourf(x,y,TS2, fbot_levels, origin='lower')
m.drawparallels(np.arange(-90.,120.,15.),labels=[1,0,0,0]) # draw parallels
m.drawmeridians(np.arange(0.,420.,30.),labels=meridians) # draw meridians
coloraxis = [0.1, 0.1, 0.8, 0.035]
cx = fig.add_axes(coloraxis, label='m', title='K')
cbar=plt.colorbar(cax=cx,orientation='horizontal',ticks=list(fbot_levels))
plt.show()

您可以在此处找到用于生成图形的 netcdf 格式的数据集

https://dl.dropboxusercontent.com/u/45427012/alb.nc4

我在 py2.7 上使用 basemap-1.0.6 和 matplotlib-1.2.1。

最佳答案

您的 basemap 对象 (m) 也用作 mpl 轴。绘图时,您应该使用它而不是使用 plt.。所以:

m.contourf(x,y,TS2, fbot_levels, origin='lower')

将级别拉伸(stretch)到 0.5 到 0.9 之间可以进一步突出显示不同的轮廓。

enter image description here

关于python - 使用 matplotlib 和 basemap 绘制带有极坐标投影的奇怪等值线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com