Je dessine un graphique en utilisant la fonction plot () , mais par défaut, il ne montre pas les axes.
Comment permet-on d'afficher les axes en x = 0 et y = 0 sur le graphique?
En fait, mon graphique est quelque chose comme:
Et je veux une ligne horizontale correspondant à y = 0 . Comment puis-je l'obtenir?
Par défaut, tracer fait afficher les axes, sauf si vous avez modifié certains paramètres. Essayez ce qui suit
hold on; % make sure no new plot window is created on every plot command
axes(); % produce plot window with axes
plot(% whatever your plot command is);
plot([0 10], [0 0], 'k-'); % plot the horizontal line
La solution du pauvre est simplement de représenter graphiquement les lignes x = 0 et y = 0. Vous pouvez ajuster l'épaisseur et la couleur des lignes pour les différencier du graphique.
Cela devrait fonctionner dans Matlab:
set(gca, 'XAxisLocation', 'Origin')
Les options sont: bas, haut, origine.
Pour Y.axis:
YAxisLocation; left, right, Origin
Si vous voulez que les axes ressemblent davantage à des réticules, plutôt que le long des bords, essayez axescenter depuis Matlab FEX.
EDIT: je viens de remarquer que cela a déjà été souligné dans le lien ci-dessus par Jitse Nielsen.
Peut-être que grid on
suffira.
Je sais que cela arrive un peu tard, mais un de mes collègues a découvert quelque chose:
figure, plot ((1:10),cos(Rand(1,10))-0.75,'*-')
hold on
plot ((1:10),zeros(1,10),'k+-')
text([1:10]-0.09,ones(1,10).*-0.015,[{'0' '1' '2' '3' '4' '5' '6' '7' '8' '9'}])
set(gca,'XTick',[], 'XColor',[1 1 1])
box off
@Martijn votre ordre d'appels de fonction est légèrement en retrait. Essayez ceci à la place:
x=-3:0.1:3;
y = x.^3;
plot(x,y), hold on
plot([-3 3], [0 0], 'k:')
hold off
Inspiré par la réponse de @ Luisa, j'ai créé une fonction, axes0
x = linspace(-2,2,101);
plot(x,2*x.^3-3*x+1);
axes0
Vous pouvez suivre le lien ci-dessus pour télécharger la fonction et obtenir plus de détails sur son utilisation.