微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Matlab中向色标添加附加标签

如何解决在Matlab中向色标添加附加标签

我正在使用Matlab(R2013b版),并制作了一张欧洲网格化地图,其中每个网格正方形都有儒略日值(严格来说不是儒略日;而是从1月1日开始的天。即1月3日为3, 1月5日是5,依此类推)。 我绘制了这些数据,然后使用colorbar来说明正在显示的日期。这将产生一个带有颜色栏右侧数字间隔的颜色栏。 是否可以在颜色栏的左侧添加其他信息,在“ 60”标记附近显示“ 2月”,在150标记附近显示5月?我在想我需要在颜色栏上创建另一个轴来做到这一点?

这是我用来绘制情节的代码

surf(meshlon,meshlat,wrf_data(:,:,1),'FaceColor','none','EdgeColor','k');view(2);
    hold on;
    %Plot jd
    surf(meshlon,budburst(:,cordexcntr)),'linestyle','none';view(2);
    %reduce the size of the plot to encompass the data
    lat1=wrf_rlat(1);
    latend=wrf_rlat(length(wrf_rlat));
    set(gca,'YLim',[lat1 latend])
    lon1=wrf_rlon(1);
    lonend=wrf_rlon(length(wrf_rlon));
    set(gca,'XLim',[lon1 lonend])
   
    %get rid of labels
    set(gca,'xticklabel',[])
    set(gca,'yticklabel',[])
    Box on
    caxis([0 365]);
    h=colorbar;
    ylabel(h,'Julian Day of Budburst');

这是情节的样子:

enter image description here

解决方法

您可以将颜色栏的刻度标记设置为与每个月的第一天相对应的日期,然后使用合适的字符串更改相应的刻度标记。例如:

ndays = [31,28,31,30,31];
% Where to put the tick marks:
ticks = [1,cumsum(ndays(1:end-1))];
% What to put at each tick mark:
labels = {'Jan 1','Feb 1','Mar 1','Apr 1','May 1','Jun 1','Jul 1','Aug 1','Sep 1','Oct 1','Nov 1','Dec 1'}; 

caxis([1,sum(ndays)]); % [1,365],not [0,365]
h = colorbar;
set(h,'Ticks',ticks,'TickLabels',labels);
ylabel(h,'Julian Day of Budburst');

(请注意,此功能尚未在R2013b中进行测试,自那时以来,MATLAB图形引擎已进行了大修,从而改变了某些图形功能。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?