python colorbar范围_python – colorbar中的奇怪范围值,matplotlib

我是python&的新用户. matplotlib,这可能是一个简单的问题,但我在互联网上搜索了几个小时,无法找到解决方案.

我正在绘制NetCDF格式的降水数据.我觉得奇怪的是,数据中没有任何负值.(我检查了很多次,只是为了确保).但是,colorbar中的值以负值开头(如-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?

>每次运行代码时,颜色栏中的值是否正确,相同数据的cos,下次运行代码时,值如下所示“-0.00001893,2.00000000,4.0000000000,6.00000000等”

>我想将它们自定义为“0.0,2.0,4.0,6.0等”

谢谢,

Vaishu

解决方法:

是的,您可以手动格式化有关颜色条的所有内容.看到这个:

import matplotlib.colors as mc

import matplotlib.pyplot as plt

plt.imshow(X, norm=mc.Normalize(vmin=0))

plt.colorbar(ticks=[0,2,4,6], format='%0.2f')

>许多绘图函数,包括imshow,contourf等,都包含一个带有Normalize对象的norm参数.您可以设置该对象的vmin或vmax属性以调整颜色条的相应值.

> colorbar采用刻度和格式参数来调整要显示的刻度以及如何显示它们.

标签:python,matplotlib,netcdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值