可能重复:
创建带有标签的 Surf()
title('Euro Swap Rates');
xlabel('Maturity');
ylabel('Date');
zlabel('Swap Rate');
set(gca, 'YTick', 1:100:length(dates));
set(gca, 'YTickLabel', dates(1:100:length(dates)));
set(gca, 'XTick', 0:10:length(rates_header));
set(gca, 'XTickLabel', rates_header(0:10:length(rates_header)));
剩下两个问题:1. 2.
- 我希望
x
Tick 是1y
然后10y20y...50y
所以第一步大小适用9y
于10y
所有剩余的点,除了最后2
一个是55y
,60y
所以应该间隔5y
开,我该如何处理这个不规则的间距? - 我希望日期仅显示每年 1 月 1 日和 6 月上旬(或最接近这些日期的工作日)。(目前,上面的代码只是获取向量的长度并按照指示对其进行拆分,我需要某种方式来查看数组中的值并进行相应的拆分。
好的,做到了,似乎是一种有点笨拙的方法,但它完成了
keydates={'01/01/2000','01/06/2000','01/01/2001','01/06/2001','01/01/2002','01/06/2002','01/01/2003','01/06/2003','01/01/2004','01/06/2004','01/01/2005','01/06/2005','01/01/2006','01/06/2006','01/01/2007','01/06/2007','01/01/2008','01/06/2008','01/01/2009','01/06/2009','01/01/2010','01/06/2010','01/01/2011','01/06/2011','01/01/2012','01/06/2012'};
keydates2=datenum(keydates,'dd/mm/yyyy');
dates2=datenum(dates,'dd/mm/yyyy');
[index]=ClosestDate(dates2,keydates2);
ytick = index;
yticklabels = keydates;
set(gca, 'YTick', ytick);
set(gca, 'YTickLabel', yticklabels);
ClosestDate 是我在 dates2 中查找第一个日期的函数,它比 keydates2 中的每个日期都多。