- 积分
- 6918
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-1-1
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 lysx 于 2017-2-6 15:24 编辑
最近刚开始学习用python画图,按照论坛中的介绍,照猫画虎,可是存在两个问题:
第一,颜色设置有问题,不能出现想要的效果;
第二,坐标轴不显示
程序如下:
# -*- coding: utf-8 -*-
"""
Created on Sun Feb 05 19:47:17 2017
@author: 123
"""
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import matplotlib.colors as col
fig = plt.figure(figsize=(12,8))
ax=fig=fig.add_subplot(111)
#Reading files
fh=Dataset('D:\\Python\\3B42_Daily.20160710.7.nc4', mode='r')
#Get values of every vars
lons=fh.variables['lon'][:]
lats=fh.variables['lat'][:]
pcp=fh.variables['precipitation'][:]
lon0=lons.mean()
lat0=lats.mean ()
m=Basemap(llcrnrlat = 10., urcrnrlat = 50., llcrnrlon = 70.,
urcrnrlon = 140., resolution ='c')
nx=pcp.shape[1]; ny= pcp.shape[0]
xx, yy= m.makegrid(nx,ny)
yy=yy[::-1]
#plot data
#rgb
#163 255 100
# 0 220 0
# 0 176 240
# 0 0 255
# 255 0 255
#a='#%02x%02x%02x'%(163,255,100)
cdict=['#a3ff64', '#00dc00','#00b0f0', '#0000ff','#ff00ff' ]
cols=col.ListedColormap(cdict, name='indexed', N=5)
clevs=[0.1, 10.0, 25, 50, 100, 250]
cs=m.contourf(xx, yy, pcp, clevs, cmap=cols)
m.drawmeridians(np.arange(70.,141,20), labels=[1, 0, 0, 0])
m.drawparallels(np.arange(-45,45,10.), labels=[0, 0, 0, 1])
cbar=m.colorbar(cs, location ='bottom',size='3%' )
cbar.set_label('mm/24h')
a='#%02x%02x%02x'%(0, 255, 255)
m.drawcoastlines(color=a)
m.drawcountries(color=a)
plt.savefig('D:\\1.png')
# close the file opened
fh.close()
恳请大家帮忙指正,谢谢啦!
附件分别是数据文件和图片
补充:把clevs 设置为等间隔的,就没有这个问题了,为什么啊?
|
|