2012-10-03 2 views
1

MATLAB에서 플롯에있는 축의 까다로운 문제를 해결하려고합니다. 온도 예측의 날짜와 시간을 표시하고 싶습니다. (따라서 계획된 날짜 레이블은 본질적으로 예보가 "유효"한 시간입니다 (3 시간 단위로 증가). 아래 그림과 같이 값의 범위는, 그러나 내 현재 플롯은 은 (그러나 약간 포인트, 대신 전체 범위) 플롯에 처음 다섯 예측 시간을 보여주고, 약 5 일 :MATLAB 플롯에서 날짜/시간 라벨을 스케일링하는 데 문제가 있음

The Incorrect time axes

현재 (DateVectors 행렬에서 생성 된) 날짜 레이블을 포함하는 문자열 벡터를 생성하여이 레이블을 표시하고 있습니다. 이 작업을 수행하는 코드는 다음과 같습니다

% Format all the dates into strings that can be displayed on the graph 
for rid = 1:numRows 
    rowdate = formattedDates(rid,:); % DateVector for this forecast step 
    fcstDateStrs{rid} = datestr(rowdate, 'dd-mmm-yyyy HHZ'); 
end 

그럼, 라인 set(gca,'XtickLabel', {}, 'YtickLabel', fcstDateStrs)과 y 축으로이 날짜를 배치합니다. 그 축의 레이블을 확장하여 모든 날짜 레이블이 올바르게 표시되도록하는 방법이 있습니까 (첫 번째 레이블은 "03-Oct-2012 06Z"이고 마지막 레이블은 "08-Oct- 2012 06Z ")?

답변

1

당신은 축의 ytick 속성을 엉망해야합니다 :

ticks = get(gca, 'ytick') 

X시킴으로써 행한다에 당신에게 현재 할당 된 표시 점의 벡터를 제공한다. 이 단계는 - 당신은 이제 틱을 설정하고 재 스케일링 플롯 것은 다소 어색한 것, 수동으로 라벨을 체크 한 이후 있다는

newTicks = linspace(ticks(1), ticks(end), numel(fcstDateStrs)); 
set(gca,... 
    'Yticks'  , newTicks,... 
    'YtickLabels', fcstDateStrs); 

주 : 당신은 당신이 원하는 진드기의 양을 설정하려면 다음을 사용할 수 있습니다 줄거리가 더 이상 변하지 않을 것이라고 확신하면 처형 될 것입니다.

관련 문제