Matlab figure: Replace xaxis with custom labels
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a figure and would like to replace the x axis of the plot to a custom one. So now there are the values from 0 to 300 on the x axis, but I need it to show the values from 1 to 10 in a equal distance on the whole width of the figure. How do I do that?
Here are the figure and the code, if this helps:

sun = dataset.sun
%time = dataset.time
figure
plot(sun)
So far I tried some options for manipulating the existing x axis, but not really succesfull so far.
1 commentaire
Adam Danz
le 20 Août 2023
When you use the plot(y) syntax, MATLAB generates the x-values 1:n where n is the number of values in y.
Réponses (2)
Sam Chak
le 20 Août 2023
Modifié(e) : Sam Chak
le 20 Août 2023
Hi @Travis Head
Is the following workaround acceptable?
time = linspace(0, 30, 301); % original x-axis
sun = tanh(1/3*(time - 15));
plot(sun), grid on, xlim([0 300])
xlabel('data points'),
% generate 2nd x-axis to have the same number of elements in 'sun'
x2 = linspace(1, 10, numel(sun));
plot(x2, sun), grid on, xlim([1 10])
xlabel('redefined x-axis'),
0 commentaires
Star Strider
le 20 Août 2023
Another approach —
sun = sin((0:240)*pi/25).^2 .* exp(-0.015*(0:240));
figure
plot(sun)
figure
plot(sun)
xt = xticks;
xticks(linspace(min(xt), max(xt), 10));
xticklabels(1:10)
.
0 commentaires
Voir également
Catégories
En savoir plus sur Axis Labels dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



