1

重複の可能性:
ラベルを使用した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)));

2つの質問が残っています:1。2。

  1. xティックを1yそのときにしたい10y20y...50yので、最初のステップサイズは9y10y最後のポイントを除いて、残りのすべてのポイントに対してであり、間隔を空ける必要があり2ます55y。この不規則な間隔をどのように処理できますか?60y5y
  2. 毎年1月1日と6月の日付のみ(またはそれらの日付に最も近い営業日)の日付を表示したいと思います。(現時点では、上記のコードはベクトルの長さを取り、指示どおりに分割します。配列内の値を調べてそれに応じて分割できる場所が必要です。

OK、やった、やや手に負えない方法のようだが、やった

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の各日付よりも多い日付を検索する関数です。

4

1 に答える 1

0

Q1のXTick場合、説明どおりにプロパティを設定するだけです:[編集:二重引用符( ")の不適切な使用を単一引用符( ')に変更しました]

xtick = [1, 10, 20, 30, 40, 50, 55, 60];
xticklabels = {'1y', '10y', '20y', '30y', '40y', '50y', '55y', '60y'};

set(gca, 'XTick', xtick);
set(gca, 'XTickLabel', xticklabels);

配列に何が含まれているかについての情報なしに Q2 に答えるのは難しいdatesですが、同じことを行うことができます。

ytick = 1:6:60; % or whatever is appropriate according to the scale you are using
yticklabels = {'Jan 2005', 'Jun 2005', 'Jan 2006', 'Jun 2006', ...etc };

set(gca, 'YTick', ytick);
set(gca, 'YTickLabel', yticklabels);

もちろん、ティック値から文字列を自動的に生成することもできます。これを行うのに助けが必要な場合は、尋ねてください。

于 2012-10-11T04:00:19.887 に答える