- 积分
- 3632
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
以前画(x,y,z)以z配色的二维曲线老是配不好,如果使用rgb_table它根本不是按z值配色的
幸好后来发现vert_colors关键字可以用来配色,辅之以自己调配的红蓝色条,二维曲线配色问题得以解决
同理,三维彩线也迎刃而解
pro xy_colorbar
;使用vert_colors即可解决二维彩线问题
a=read_ascii('C:\Users\Administrator\Desktop\dust.txt',$
DELIMITER=';',data_start=0)
x=a.field1
lat=transpose(x[2,*])
lon=transpose(x[1,*])
pm=transpose(x[3,*])
help,lon,lat,pm
;给z匹配颜色即可
colors=red_blue_colorbar(pm,min(pm),max(pm))
plot=plot(lon,lat,vert_colors=colors,thick=5)
end
;arr是个一维向量,返回值是[R,G,B]三列的数组
;minv是配色下限,maxv是上限
;超过maxv的x值全配以纯红色,低于minv的值全配以纯蓝色
function red_blue_colorbar,ARR,minV,maxV
MINV=MINV+0.0
MAXV=MAXV+0.0
L=(MAXV-MINV)/3.0
N=N_ELEMENTS(arr)
COLORS=[-99,-99,-99]
FOR I=0,N-1 DO BEGIN
X=ARR[I]
if(x lt minv)then begin
R=0
G=0
B=255
endif
if(x gt maxv)then begin
R=255
G=0
B=0
endif
if(x gE MINV and x lt MINV+L)then begin
R=0.0
G=255.0/L*(X-MINV)
B=255.0
endIF
if(x GE MINV+L and x LT MINV+L*2)then begin
R=255.0/L*(X-MINV-L)
G=255.0
B=-255.0/L*(X-MINV-L*2)
endIF
if(x GE MINV+L*2 and x LE MAXV)then begin
R=255.0
G=-255.0/L*(X-MAXV)
B=0.0
endIF
COLORS=[[COLORS],[R,G,B]]
ENDFOR
RETURN,COLORS[*,1:-1]
end
|
|