gpt4 book ai didi

python - 颜色条中的奇怪范围值,matplotlib

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:41 25 4
gpt4 key购买 nike

我是 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 开始,其余为正值,我相信是正确的。这只是困扰我的最小值。

我想知道:

  1. 我的代码有什么问题吗?因为我知道数据是正确的。
  2. 有没有办法手动将值更改为 0?
  3. 颜色栏中的值在我们每次运行代码时更改是否正确,因为对于相同的数据,下次我运行代码时,值会像这样“-0.00001893、2.00000000、4.00000000、6.00000000 等”
  4. 我想将它们自定义为“0.0、2.0、4.0、6.0 等”

谢谢,外舒

最佳答案

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

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')
  1. 许多绘图函数,包括 imshowcontourf 和其他函数都包含一个 norm 参数,该参数接受一个 Normalize对象。您可以设置该对象的 vminvmax 属性来调整颜色栏的相应值。

  2. colorbar 采用 ticksformat 参数来调整要显示的刻度以及如何显示它们。

关于python - 颜色条中的奇怪范围值,matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3970072/

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