How to modify the y-axis tick label and tick values (2016a)
22 ビュー (過去 30 日間)
古いコメントを表示
I have three variables day, time and z2 and i plot using imagesc. Below are the data information:
data information:
day 1*1420 double(each number is equal to 6 hours)
time 1*3001 double (this case has -300:300 with interval of 0.2)
z2 1420*3001 double
Later I converted the weeks segments into date by using below code.
fig=figure(ii);
h1=subplot(3,1,1);
imagesc(time,day,z2);
colormap(jet)
YTickStr = char(datetime('10/10/2018', 'InputFormat', 'dd/MM/yy', 'Format', 'dd/MM/yy') + hours(day*6));
set(gca, 'YTick', 1:lengday, 'YTickLabel', YTickStr);
xlim([-100 100]);
If i do not use any interval, ticks label are so difficult to read as below and I cant read any thing![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/662155/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/662155/image.png)
Later, I change the interval with 1:500:lengday and it starts from 1JAN which i exected to start from 10/10/18.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/662160/image.png)
How can I modify the code so that it gives me the interval based on Ytrickstr?
here is my failed attemt which gives me the first 5 values from YTickStr.
yval = ylim(gca);
set(gca,'YTick',linspace(yval(1),yval(2),5),'YTickLabel', YTickStr)
YTickStr files is like this
10/10/18
10/10/18
10/10/18
11/10/18
11/10/18
11/10/18
11/10/18
12/10/18
12/10/18
12/10/18
12/10/18
13/10/18
13/10/18
13/10/18
13/10/18
14/10/18
Thank you very much
0 件のコメント
採用された回答
Rik
2021 年 6 月 23 日
編集済み: Rik
2021 年 6 月 23 日
The trick is to select part of your YTickStr:
L=round(linspace(1,size(YTickStr,1),5));
% use round to round to integer indices
yval=ylim;yval=linspace(yval(1),yval(2),numel(L));
%this is only approximate
set(gca,'YTick',yval,'YTickLabel', YTickStr(L,:))
%exact yval:
yval=yval(1) + diff(yval)* (L-1)./(numel(L)-1);
6 件のコメント
Rik
2021 年 6 月 23 日
No problem, this forum can be less intuitive for newer members.
yval is derived from ylim, which returns only two values, but the second part of the line expands this to the same count as L, which was set to 5 in the line before it.
So yval and L should have the exact same number of elements.
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Data Distribution Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!