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

6 vues (au cours des 30 derniers jours)
Joseph Bail
Joseph Bail le 2 Déc 2021
Commenté : Joseph Bail le 2 Déc 2021
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.

Réponse acceptée

Walter Roberson
Walter Roberson le 2 Déc 2021
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

Plus de réponses (2)

Chunru
Chunru le 2 Déc 2021
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 commentaires
Joseph Bail
Joseph Bail le 2 Déc 2021
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 le 2 Déc 2021
You can change the tick location any way you want. The above is just an example.

Connectez-vous pour commenter.


the cyclist
the cyclist le 2 Déc 2021
Modifié(e) : the cyclist le 2 Déc 2021
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 commentaire
Joseph Bail
Joseph Bail le 2 Déc 2021
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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by