爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9312|回复: 3

[求助] 在绘制垂直速度高度轴没法关掉科学计数

[复制链接]

新浪微博达人勋

发表于 2021-11-7 17:19:57 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
import xarray as xr
import numpy as np
import metpy.calc as mpcalc
from metpy.units import units
import matplotlib.pyplot as plt
from cartopy.mpl.ticker import LongitudeFormatter

#################################################################################################
all_vars = xr.open_dataset('D:\\python\\tianzhen\\shixi2\\all.nc')
lons = all_vars['lon'][:]
lats = all_vars['lat'][:]
levels = all_vars['level'][:]
lon, lat = np.meshgrid(lons, lats)
lon=lon*units.degrees_east
lon, level = np.meshgrid(lons, levels)
level=level*units.hPa
####赋上单位,度数
lons = lons * units.degrees_east
lats = lats * units.degrees_north
dx, dy = mpcalc.lat_lon_grid_deltas(lons, lats)  ###后面散度计算需要

uwind = all_vars['u'][0, 0, :, :]
vwind = all_vars['v'][0, 0, :, :]
uwind_levels = all_vars['u'][0, :, :, :]
vwind_levels = all_vars['v'][0, :, :, :]
####赋上单位,m/s
uwind_levels = uwind_levels * (units.m / units.s)
vwind_levels = vwind_levels * (units.m / units.s)
uwind = uwind * (units.m / units.s)
vwind = vwind * (units.m / units.s)
###################################################################################################
Pcha = [75, 75, 150, 100, 100]
div = np.zeros((6, 29, 45))
W_speed = np.zeros((6, 29, 45))
W_speed_Xiu = np.zeros((6, 29, 45))
for h_i in range(6):
    # 计算散度
    div[h_i, :, :] = mpcalc.divergence(uwind_levels[h_i, :, :], vwind_levels[h_i, :, :], dx=dx[:, :], dy=dy[:, :])
for h_i in range(1, 6):
    W_speed[h_i, :, :] = W_speed[h_i - 1, :, :] + 0.5 * (div[h_i, :, :] - div[h_i - 1, :, :]) * Pcha[h_i - 1]
for h_i in range(5):
    W_speed_Xiu[h_i, :, :] = W_speed[h_i, :, :] - h_i * (h_i + 1) / (7 * 6) * (W_speed[5, :, :] - W_speed_Xiu[5, :, :])
#############################################################绘图##################################3
fig = plt.figure()
ax = fig.subplots(1, 1)
plt.contourf(lon[:, :], level[:, :], W_speed_Xiu[:, 11, :])
plt.colorbar()
#####横坐标显示经度
lon_formatter = LongitudeFormatter(zero_direction_label=False)
ax.xaxis.set_major_formatter(lon_formatter)
####纵坐标格式显示
ax.set_yscale('log')
ax.set_ylim(1000,500)
ax.set_ylabel('hPa')
plt.show()

Figure_1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2021-11-7 17:28:19 | 显示全部楼层
拜托各位前辈啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-7 22:24:53 | 显示全部楼层
实在不行可以plt.yticks来暴力设置y轴。比如plt.yticks([1000,950,850,700,500],["1000","950","850","700","500"])
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-7 23:07:57 | 显示全部楼层
雨落森林 发表于 2021-11-7 22:24
实在不行可以plt.yticks来暴力设置y轴。比如plt.yticks([1000,950,850,700,500],["1000","950","850","700" ...

问题解决了,谢谢前辈帮忙
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表