爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17764|回复: 12

[作图] 求问一个散点图加上对角线的问题

[复制链接]
发表于 2013-11-21 10:17:30 | 显示全部楼层 |阅读模式

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

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

x

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"

procedure add_line(wks,plot,x,y)
local res_line, str
begin
  res_line = True
  res_line@xyDashPatterns         = 16                  ; dashed line for 2nd
  res_line@xyLineThicknesses      = 3                  ; thicker line

  str = unique_string("polyline")   ; "unique_string" will return a unique
                                    ; string every time it is called from
                                    ;  within a single NCL session.
;
; You can then use this unique string as an attribute variable name
; that gets attached to the plot variable. This ensures that this
; value will live for the duration of the script.
;
  plot@$str$ = gsn_add_polyline(wks, plot, x, y, res_line)
end
;---------------仿照例子定义一个add_line的procedure,用来画对角线,输入的参数是wks, plot, x和y
begin

Rn_path="/home/zhaojc/work/863/Rn/"
f_Rn_cam=addfile(Rn_path+"Rn_cam_dot.nc","r")
var_Rn_cam=f_Rn_cam->Rn_cam_dot
f_Rn_rs=addfile(Rn_path+"Rn_rs.nc","r")
var_Rn_rs=f_Rn_rs->Rn_rs

x_Rn=var_Rn_cam
y_Rn=var_Rn_rs
;--------------------------------------将要化的数据读取出来---------------------------------------------
xx_Rn = ispan (60,72,1)
yy_Rn = xx_Rn
;--------------------------------------生成准备画对角线的数据------------------------------------------------------
wks   = gsn_open_wks ("pdf","scatter")            ; open workstation
  res_Rn = True
  res_Rn@xyMarkLineMode    = "Markers"                ; choose to use markers
  res_Rn@xyMarkers         =  16                      ; choose type of marker
  res_Rn@xyMarkerColor     = "Black"               ; Marker color
  res_Rn@xyMarkerSizeF     = 0.01                     ; Marker size (default 0.01)
  res_Rn@trXMinF = 60
  res_Rn@trYMinF = 60
  res_Rn@trXMaxF = 72
  res_Rn@trYMaxF = 72
  res_Rn@gsnFrame = False                  ; don't advance frame yet
  res_Rn@tiXAxisString = "ERA-40"
  res_Rn@tiXAxisFont = 25
  res_Rn@tiYAxisString = "calculation"
  res_Rn@tiYAxisFont = 25

   plot  = gsn_csm_xy (wks,x_Rn,y_Rn,res_Rn)
;---------------------------------------------------画散点图------------------------------------------------------------------
  add_line(wks,plot,xx_Rn,yy_Rn)
;---------------------------------------------------调用add_line画对角线------------------------------------------------
  frame(wks)
end

但这样画出来,只出来散点图,没有对角线,求问错在什么地方?
多谢!
密码修改失败请联系微信:mofangbao
发表于 2013-11-21 12:04:43 | 显示全部楼层
hi,完全可以参照http://www.ncl.ucar.edu/Applications/scatter.shtml 中例4将趋势线换为你要的对角线就行了
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-21 12:23:09 | 显示全部楼层
密码修改失败请联系微信:mofangbao
发表于 2013-12-2 10:21:10 | 显示全部楼层
密码修改失败请联系微信:mofangbao
发表于 2016-10-19 09:36:20 | 显示全部楼层
talkd 发表于 2013-11-21 12:04
hi,完全可以参照http://www.ncl.ucar.edu/Applications/scatter.shtml 中例4将趋势线换为你要的对角线就行 ...

谢谢您,刚好要用到
密码修改失败请联系微信:mofangbao
发表于 2016-10-19 17:34:31 | 显示全部楼层
talkd 发表于 2013-11-21 12:04
hi,完全可以参照http://www.ncl.ucar.edu/Applications/scatter.shtml 中例4将趋势线换为你要的对角线就行 ...

您好,有个问题想请教一下,我画了一个因子先简称A和台风数的散点图,结果表达得是A因子越强台风数越少,
然后用ncl里面的第四个例子http://www.ncl.ucar.edu/Applications/Scripts/scatter_4.ncl添加了一条直线regline,请问我写图注的时候怎么写,就说A和台风数的散点图及其回归线吗?我在文献中没找到这种图,所以图注不太会写。。。求大神指教
密码修改失败请联系微信:mofangbao
发表于 2016-10-21 10:17:55 | 显示全部楼层
subtropical 发表于 2016-10-19 17:34
您好,有个问题想请教一下,我画了一个因子先简称A和台风数的散点图,结果表达得是A因子越强台风数越少,
...

应该有很多这种图吧,Caption可以大概这样写:Scatter plot of A against the Number of Typhoon. The dash line indicates the regression line. 仅供参考...
密码修改失败请联系微信:mofangbao
发表于 2016-10-21 18:13:18 | 显示全部楼层
talkd 发表于 2016-10-21 10:17
应该有很多这种图吧,Caption可以大概这样写:Scatter plot of A against the Number of Typhoon. The da ...

好的灰常感谢{:eb511:}
密码修改失败请联系微信:mofangbao
发表于 2016-11-18 15:45:42 | 显示全部楼层
talkd 发表于 2013-11-21 12:04
hi,完全可以参照http://www.ncl.ucar.edu/Applications/scatter.shtml 中例4将趋势线换为你要的对角线就行 ...

你好,我已经使用了例子中介绍的方法,画出散点跟对角线图,现在想再画出x轴y轴一横一竖的图,该怎么添加呢?
密码修改失败请联系微信:mofangbao
发表于 2016-11-19 17:58:53 | 显示全部楼层
橙子鲜 发表于 2016-11-18 15:45
你好,我已经使用了例子中介绍的方法,画出散点跟对角线图,现在想再画出x轴y轴一横一竖的图,该怎么添加 ...

设置XRefline和YRefline就行了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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