Ticks on second y-axis

조회 수: 16 (최근 30일)
Markus R.
Markus R. 2020년 5월 8일
댓글: Alan 2024년 11월 15일
Hey there,
I'm one step away from reaching my wanted result. I have a bar chart and tow y-axis. The problem is that the right y-axis won´t accept my "ytricks" command.
Here is the code:
N=5; % number of bars
y1=[0,289.17; % first data set
0,507.71;
0,775.66;
0,1346.97;
0,1853.58];
y2=[2.36,0; % second data set
3.97,0;
5.52,0;
7.72,0;
8.51,0];
y1(:,1)=nan;
y2(:,2)=nan; % NB: column 2, then column 1 are set NaN for bar chart plotting
x=[1:N].'; % use the serial index to plot against; transpose
z=plotyy(x,y1,x,y2,@bar,@bar); % plot, save axes handles
yyaxis left
set(z(2),'xtick',[]) % turn off labels on RH x-axis; keep only one set
ylabel(['Time [s]']);
yticks(0:200:2000);
yyaxis right
yticks(0:1:10); % not working !
yl = ylabel('Temperature [°C]');
set(yl, 'Color', 'k');
set(z(1),'xticklabel',[0.5,0.75,1,1.5,2]) % tick labels on first...
xlabel(['Factor']);
l = cell(1,2); % legend
l{1}='Time'; l{2}='Temperature';
m = legend(l);
set(m,'FontSize',12);
and here is the result:
Can someone help me scaling the right y-axis (1:1:10)?
Thanks in advance
Markus R.
  댓글 수: 3
Markus R.
Markus R. 2020년 5월 8일
Thanks for your answer. It makes sense to me. But how do I plot a bar chart with plot(); I could only finde the comment bar(). Without the "z = plotyy()" function I can't scale the x-axis.
Alan
Alan 2024년 11월 15일
Hi Marcus, you will get your desired result if you replace
set(z(2),'xtick',[])
with
set(z(2),'ytick',[])

댓글을 달려면 로그인하십시오.

채택된 답변

Mehmed Saad
Mehmed Saad 2020년 5월 8일
Either use plotyy or yyaxis
I am demonstrating how to do it with plotyy
z=plotyy(x,y1,x,y2,@bar,@bar); % plot, save axes handles
% Access axes using set
set(z(1),'YTick',0:200:2000,'xticklabel',[0.5,0.75,1,1.5,2]);
% Access axes properties directly (you can also use set here)
z(1).YLabel.String = 'Time [s]';
% Access axes using set
set(z(2),'YTick',0:1:10);
% Access axes properties directly (you can also use set here)
z(2).YLabel.String = 'Temperature [°C]';
xlabel('Factor');
m=legend('Time','Temperature','Location','northwest');
set(m,'FontSize',12);
  댓글 수: 1
Markus R.
Markus R. 2020년 5월 8일
Thank you very much!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Axis Labels에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by