爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9602|回复: 10

[作图] 【求助】叠加后地形剖面图无法填色

[复制链接]

新浪微博达人勋

发表于 2021-12-6 20:50:16 | 显示全部楼层 |阅读模式

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

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

x
求助各位大神,我在画一个任意量的垂直剖面图plot,和地形的折线图plot1,单独画折线图plot1的时候能将折线图与参考线之间的颜色填为黑色表示为地形,但是将其与填色图plot叠加后就只有折现,没有填色了。太奇怪了,求助!
我开始想着是折线图的Y轴边界与填色图可能不匹配,故将大于1000hpa的值用where函数转化为1000,结果还是没有变化。
代码如下
begin
    ;f = addfile("J:/data/shp/DAT/ETOPO1_Bed_g_gmt4.grd.nc", "r")
    fw = addfile("J:/data/ERA5/vvandrevo-adaptor.mars.internal.nc", "r")
        w1 = short2flt(fw->w)
        year = ispan(1991,2020,1)
        w1!0 = "year"
        w1&year = year
        w2 = w1*100
        copy_VarMeta(w1, w2)
        temp = w2({1994},:,{35},{60:120})
        printVarSummary(temp)
    f = addfile("J:/data/shp/DAT/topo_0.25.nc", "r")
    fz = doubletofloat(f->z)
    printVarSummary(fz)
    lat = fspan(-90, 90, 721)
    lon = fspan(-180,180, 1441)
    fz!0 = "lat"
    fz!1 = "lon"
    fz&lat = lat
    fz&lon = lon
    printVarSummary(fz)
    tz = fz({35},{60:120})
    printVarSummary(tz)
    elev = 1013.25*(1-tz*0.0065/288.15)^5.25145
    lon1 = fspan(60, 120, 241)
    elev!0 = "lon1"
    elev&lon1 = lon1
    printVarSummary(elev)
    ;nan = elev@Fill_Value

    e2 = where(elev.ge.1000, 1000, elev)        ;算完后的折线图最低气压大于1000hpa,这里将大于1000的全部规整为1000
     ; print(e2)
     ; exit
;; Draw map
    wks = gsn_open_wks("png","G:/NCL/pic/mask-3")      ; send graphics to PNG file

    res                          = True             ;填色背景图
    res@gsnMaximize              = True
    res@gsnDraw     = False
    res@gsnFrame    = False
    res@tmBorderThicknessF       = 6.0    ; border 6x as thick
    res@tmXTOn                   = False  ; Turn off top and right
    res@tmYROn                   = True  ; tickmarks

    res@trXMinF                  = 60     ; Set min/max of X axis
    res@trXMaxF                  = 120
    res@trYReverse               = True   ; Reverse Y axis
    ;res@cnFillMode          = "AutomaticLevels"
    res@cnFillOn                 = True
    res@cnFillColor              = True
    res@cnLinesOn                = False
    ;res@cnInfoLabelOn            = False
    res@cnSmoothingOn            = True

    res@pmLabelBarWidthF         = 0.6     ; Change size of labelbar
    res@pmLabelBarHeightF        = 0.05
    res@pmLabelBarOrthogonalPosF = 0.05
    res@lbLabelFontHeightF       = 0.010

    plot = gsn_csm_contour(wks,temp,res)

    gres        = True              ;折线
    gres@gsnDraw               = False
    gres@gsnFrame              = False
    ; gres@cnSmoothingOn         = True
    ; gres@cnFillPalette          = "gsltod"
    gres@trYReverse = True
    gres@tmYLTickStartF     = 1000
    gres@tmYLTickEndF       = 200
     gres@gsnYRefLine    =  1000
     gres@gsnAboveYRefLineColor  = 1
     ;gres@gsnBelowYRefLineColor  = 1

    plot1 = gsn_csm_xy(wks, lon1, e2, gres)  

    overlay(plot,plot1)
    draw(plot)
    frame(wks)
end

QQ图片20211206204540.png
mask-3.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2021-12-6 21:11:55 | 显示全部楼层
自己顶顶 求助!先谢谢了!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-12-6 22:12:49 | 显示全部楼层
先变量填色,res@cnFillDrawOrder     = "PreDraw",再叠地形
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-12-7 10:15:49 | 显示全部楼层
AXD 发表于 2021-12-6 22:12
先变量填色,res@cnFillDrawOrder     = "PreDraw",再叠地形

嗷嗷,是绘图顺序的原因嘛,谢谢您!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-4-8 16:31:37 | 显示全部楼层
请问楼主解决了没有呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-14 17:49:41 | 显示全部楼层
哈哈哈铺 发表于 2022-4-8 16:31
请问楼主解决了没有呢?

绘图顺序的问题,前面画填色图的时候加上res@cnFillDrawOrder     = "PreDraw"
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-4-24 23:39:57 来自手机 | 显示全部楼层
麻烦分享一下这个地形数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-25 14:43:26 | 显示全部楼层
文件.......

topo_0.25.nc

7.95 MB, 下载次数: 59, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-4-28 21:12:55 | 显示全部楼层
感谢楼主分享的地形数据!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-8-4 10:04:34 | 显示全部楼层
楼主你好, 请问你将海拔高度转换为气压坐标用的是哪一个压高公式呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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