필터 지우기
필터 지우기

Log axis on imagesc

조회 수: 34 (최근 30일)
Cl
Cl 2014년 3월 10일
댓글: Sean de Wolski 2014년 3월 10일
I've plotted an image using imagesc:
figure;
imagesc([pmin pmax], [vmax vmin],flipud(result.^2))
xlabel('Period (s)','FontSize',20)
ylabel('Velocity (m.s^-^1)','FontSize',20)
set(gca,'ydir','normal')
and would like to make the x-axis logarithmic. If I just do set(gca, 'XScale','log') it changes the scale but not the image. How can I change the image and the scale? I've tried plotting with surf as well, but that's not producing what I want. My xscale values are 2:0.1980:101, so I'm not sure what the best way of plotting this is. Any suggestions are much appriciated!

답변 (1개)

Sean de Wolski
Sean de Wolski 2014년 3월 10일
I think what you want is to use surf with x and y set to your values.
surf(1:100,1:100,magic(100));
set(gca,'XScale','log');
view(2)
If this isn't correct, could you attach your data in a zip file?
  댓글 수: 2
Cl
Cl 2014년 3월 10일
Thanks for your response. When using set(gca, 'XScale','log') how does this decide how the values are split up? When I use
surf(result.^2,'LineStyle','none')
view(0,90)
set(gca, 'XTick',pmin:(pmax-pmin)/10:pmax ,'XTickLabel', round(pmin:(pmax-pmin)/10:pmax), 'FontSize',16)
xlabel('Period (s)','FontSize',20)
ylabel('Velocity (m.s^-^1)','FontSize',20)
I just get the first 10 values used for the 0:10 section, which isn't correct. I'm not sure where I'm going wrong with that
Sean de Wolski
Sean de Wolski 2014년 3월 10일
I'm not able to reproduce what you're describing (guessing at pmin, pmax)
surf(1:100,1:100,magic(100));
set(gca,'XScale','log');
view(2)
set(gca,'XTick',2:(pmax-pmin)/10:102,'XTicklabel',round(2:(pmax-pmin)/10:102))

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by