- 积分
- 36026
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-7-26
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
前几天画相关系数分布图,遇到了一个问题:第一次用contourf画通过检验区,第二次用contour画相关系数等值线,发现第一个contourf后正常,但第二次用contour后第一次填充的区域发生了变化。
原因在于:Matlab至今对同一张图不能用两个colorbar!
正因为这个原因,所以第二次用contour的时候colorbar发生了变化,导致第一次填充区域也发生了变化。
解决方案:
由于Matlab现在还没有办法对同一张图用两套colorbar,即使是同一套数据,如果colorbar两次后变了,那么对于第一次用的contourf填充区会也发生变化,或者颜色发生变化。我想到了下面两个解决方案:
1. 如果你是对同一组数据画图。如:SST画图。想把某一区域填充,第二次画等值线。你应该固定好colorbar的范围再填充。但是填充什么颜色,会根据你固定colorbar的范围来决定。由于colorbar的固定,所以第二次用contour的时候对第一次不影响。
2.如果是两套不同的数据,比如一个是显著性检验的数据,一个是相关系数的数据。两套数据的范围不同,很难把colorbar固定一个范围。我觉得这时没有什么好的方法,只能把你所想要填充的数据用find找出来,然后用plot填充,再设置marker的大小等参数,可能会达到最终的效果。因为plot不会使用colorbar,你可以任意设置符号的颜色,而等值线用一个colorbar不会影响。
PS:contourf填充的时候只对比你设置等值线大的值填充。
如:contourf(peaks,[0 0])
这时候是对大于0的区域填充,对小于0的区域不填充。无论你怎么设置小于0区域填充的颜色是都不会填充,这是contourf函数默认的设置。
我也没怎么做过试验,希望大家在下面多多讨论。
|
评分
-
查看全部评分
|