web-dev-qa-db-fra.com

Valeurs d'axe X personnalisées dans une parcelle de matlab

Actuellement, lorsque je trace un réseau de 9 sur 6, l'axe des x de la figure n'est que 1, 2, 3 jusqu'à 9. L'axe de Y montre les valeurs correctes.

Au lieu de 1 à 9, je voudrais que les valeurs de l'axe des x soient personnalisées. Ils devraient être

100 200 400 1000 2000 5000 10000 20000 50000

au lieu. J'ai essayé

set(gca,'XTick', [100 200 400 1000 2000 5000 10000 20000 50000])

Mais ce n'est pas la bonne façon de le faire. Y a-t-il une option Matlab pour avoir ces valeurs personnalisées pour l'axe X? Pourquoi Matlab simplement en utilisant 1 à 9 quand même?

10
Devon

Vous devriez utiliser xticklabel au lieu de XTick.

MATLAB parcourt chaque colonne en tant que courbe séparée. Donc, cela signifie que vous avez 6 courbes et 9 points de données pour chaque courbe. Les données de l'axe X sont 1 à 9 parce que vous n'avez fournies aucune donnée pour Matlab pour tracer avec.

De plus, vous voulez probablement la mauvaise chose. Faire cela vous donnera un espacement égal. Il suffit de remplacer 1-9 avec votre tableau. Étant donné que vos données de l'axe X ne sont pas aussi espacées, ce sera bizarre.

Vous voudrez peut-être le faire comme ceci:

xdat = [100 200 400 1000 2000 5000 10000 20000 50000];
ydat = Rand(9,6); % Your y-axis data
plot(xdat, ydat)
4
HebeleHododo

Si vous souhaitez conserver des distances entre les valeurs X (par exemple 1: 9) et ne modifiez que les étiquettes (pas les distances entre les valeurs X), essayez ceci:

y = Rand(9,6);
labels = [100 200 400 1000 2000 5000 10000 20000 50000];
plot(y);
set(gca, 'XTick', 1:length(labels)); % Change x-axis ticks
set(gca, 'XTickLabel', labels); % Change x-axis ticks labels.
7
Framerius

Essayer d'utiliser

x = [100 200 400 1000 2000 5000 10000 20000 50000];
y = Rand(9,6); % Your y-axis data
plot(x, y);
set(gca,'XTick',x); % Change x-axis ticks
set(gca,'XTickLabel',x); % Change x-axis ticks labels to desired values.

Veuillez noter qu'en raison des valeurs/magnitudes très différentes d'utiliser UN X-AXIS, vous pouvez obtenir des étiquettes X très proches (et illisibles).

3
Transfinito