Can my x-axis have varying scales for certain ranges of values?

조회 수: 4 (최근 30일)
Joseph Bail
Joseph Bail 2021년 12월 2일
댓글: Joseph Bail 2021년 12월 2일
Is it possible to scale my x-axis so the intervals are spread further apart from each other for more time-sensitive data and closer together for the data that spans across a larger time period?
For example, I would like the distance between the x-ticks to be relatively small from 60- to 180-seconds. Conversely, I would like the gaps to be significantly wider from 180-seconds to 200-seconds so the plot is less crowded.

채택된 답변

Walter Roberson
Walter Roberson 2021년 12월 2일
Is it possible to scale my x-axis so the intervals are spread further apart from each other for more time-sensitive data and closer together for the data that spans across a larger time period?
No, it is not.
  • you could create several piecewise linear (or log) axes beside each other, and split the drawing up between them.
  • you could transform your original x data in a non-linear way, and tell xticklabels to lie about what values are there, and ignore the problems you are creating for zoom or data cursors
  • you could transform your original x data in a non-linear way, and tell xticklabels to lie about what values are there, and go through a bunch of trouble to get zoom and data cursors to act sensibly
  • you could create a subplot or inset graph that focused on the area of greatest interest

추가 답변 (2개)

Chunru
Chunru 2021년 12월 2일
Yes. You can change the tick locations:
t = 1:200;
x = sinc(2*pi*.125*t);
plot(t, x);
set(gca, 'XTick', [0:20:60 70:10:100 125:25:200])
  댓글 수: 2
Joseph Bail
Joseph Bail 2021년 12월 2일
Yes, but the scale is still uniform across the x-axis correct? In your example, only the labels are located at locations that are not uniform.
Chunru
Chunru 2021년 12월 2일
You can change the tick location any way you want. The above is just an example.

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


the cyclist
the cyclist 2021년 12월 2일
편집: the cyclist 2021년 12월 2일
Here is a simple example:
x = 1:10;
y = 2*x;
figure
plot(x,y)
xtick_loc = [0:0.5:2 3:2:7 8:0.5:10];
set(gca,'XTick',xtick_loc)
  댓글 수: 1
Joseph Bail
Joseph Bail 2021년 12월 2일
Perhaps I was not all that clear with my question. I am trying to scale the data differently along my x-axis. The x-axis still has a uniform scale in your example despite the ticks occurring at different locations.

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

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by