2013-11-27 2 views
0

아래의 코드는 제대로 작동하지만 시작 날짜와 종료 날짜를 원하는 달력 날짜로 변경할 수 있어야합니다. 따라서 2002 년 : 2003 년부터 실행하기보다는 '15/Aug/2001 '에서 '14/Aug/2002'까지 실행하고 싶습니다. 또한 y 축에 이러한 새로운 날짜를 표시하고 싶습니다.Matlab plotting with dates

그 사이의 실제 일수는 캘린더가 말하는 것과 같지 않을 것입니다. 그러나이 경우 255 일 (이 경우) 나는 수동으로 정보를 입력해야합니다.

datetick가 도움이 될 것으로 보인다 그러나 나는 아래의 프레임 워크에 맞게 얻을 수 없다 : 나는 이미이 코드 조각에 몇 가지 질문을 요청했습니다 알고

그러나 이것은 마지막 하나가 될 것입니다!

tchange=(1/(255-1)); 
x = 2002:tchange:2003; % x data 
grad_ = rand(1,length(x))*.3; % graduated stuff 
grad_2 = rand(1,length(x))*.3; 
grad_3= rand(1,length(x))*.3; 
h = subplot(1,3,1); 
%plot(grad_,x); % flip x and y for vertical plot 
herrorbar(grad_,x,grad_2,grad_3,'.'); 
axis(h, [0 0.5 2002 2003]) 
set(h, 'Ytick', x(1):x(end), 'Xtick', 0:.1:.5, 'YDir','reverse', 'YGrid', 'on'); 
xlabel('Gradient Search') 

diff_ = rand(1,length(x)).^2 *.15; % differential stuff 
h = subplot(1,3,2); 
herrorbar(diff_,x,grad_2,grad_3,'.'); 
%plot(diff_,x); 
set(h,'yticklabel',[], 'Ytick', x(1):x(end), 'Xtick', 0:.1:.5, 'YDir','reverse', 'YGrid', 'on'); 
axis(h, [0 0.5 2002 2003]) 
xlabel('Differential Evolution') 

delta_ = rand(1,length(x)).^2 *.2 - .2; % delta stuff 
h = subplot(1,3,3); 
%plot(delta_,x); 
stem(x,delta_median_LP(1:npoints,1),'Marker','.'); 
axis(h, [2002 2003 -.5 .5]) 
set(h,'Xtick', -.5:.5:.5, 'XGrid', 'on'); 
view(90,90); 
ylabel('\Delta of medians') 

답변

1

당신은 datetick 기능과 함께 MATLAB의 datenum 기능을 사용할 수 있어야합니다. 예를 들어, 첫 번째 줄거리를 들어, 당신은 할 수있는 다음은이 경우에 나쁘지 않네요 기본값을 사용하도록

x = datenum(2001,8,15):datenum(2002,8,14); % x data 
grad_ = rand(1,length(x))*.3; % graduated stuff 
grad_2 = rand(1,length(x))*.3; 
grad_3= rand(1,length(x))*.3; 
h = subplot(1,3,1); 
plot(grad_,x); % flip x and y for vertical plot 
% herrorbar(grad_,x,grad_2,grad_3,'.'); 
axis(h, [0 0.5 x(1) x(end)]) 
set(h, 'Xtick', 0:.1:.5, 'YDir','reverse', 'YGrid', 'on'); 
datetick('y',24,'keeplimits'); 
xlabel('Gradient Search') 

나는 set 명령의 ytick 부분을 제거,하지만 당신은 할 수 당신이 원하는대로 설정하십시오.