Les Allergies
Alimentaires
Posez votre question Signaler

[MATLAB] Légende des axes [Résolu]

jebok 371Messages postés 16 mai 2005Date d'inscription - Dernière réponse le 16 avril 2012 à 10:04
Bonjour,
lorsque qu'on affiche un graphique, la légende de l'axe vertical (ylabel) s'affiche verticalement, donc il faut pencher la tête pour la lire.
Y a-t-il un moyen de modifier l'orientation du texte ?
Et pour mettre des lettres en indice / exposant, c'est possible ?

Merci de votre aide
Lire la suite 

[MATLAB] Légende des axes »

Suggestions
32 réponses
Réponse
+4
moins plus
Salut,

si tu veux mettre un caractere en indice, utilise le underscore et pour mettre en exposant, utilise le ^.

exemple : x_7 z^9

si tu veux mettre plusieurs caractère en indice, utilise les { }

exemple

x_{78} -> mettra 78 en indice
z^{99} -> mettra 99 en exposant
x^{78}_{99} -> mettre 78 en exposant et 99 en indice

ensuite tu peux jouer avec les underscore et els ^

exemple : x^{78_9}_{87^{45}} -> même logique

Si tu veux mettre des lettres grecques, utilise le \

exemple : \alpha \beta \xi

donc tu obtiens qqch du genre :

\beta^{78}_{99} \xi_{7^9}

voici un test matlab ;

x=-pi:0.01:pi;
plot(x,cos(x),'r')
title('x_7 \theta_8 \xi_{99}^{45^7}')

connais-tu latex ? C'est exactement la même syntaxe.
pom - 16 juin 2005 à 13:45
Salut Laurenttls,

Je vais sûrement te répndre des trucs trop simples :

1e idée : tu fais une matrice à trois colonnes,
2e idée : tu fais un fprintf : regarde la doc pour son utilisation. Si tu n'y arrives pas, renvoie un post

3e idée : tu fais un diary

exemple :

tu te crées un fichier : main.m (par exemple).

clear all

a=1

diary toto.txt

b=2
c=3
d=4;
e=5

diary off

tu lances ce fichier main.m et tu verras qu'un fichier toto.txt a été crée, dans lequel il est écrit :

b=2
c=3
e=5

d=4 n'est pas écrit car du fait de point virgule, il n'est pas affiché dan la feuille de calculs.

donc ej te propose de faire une matrice à trois colonnes puis un diary

j'espère que ca t'aide.

Cordialement
laurent - 16 juin 2005 à 15:05
merci deja d'avoir repondu si rapidement.
je vais essayer de faire. je te tiens au courant. ja' une autre question toute aussi bete, mais je ne sais pas comment faire.
par exemple, j'ai deja un edit text, je lance le programme, je rentre une valeur et j'arrive a la recuperer. cependant je ne voudrais que certaines valeurs deja defnis. j'utilise donc un popupmenu, je rentre les valeurs. je lance le programme, je choisis la valeur mais j'arrive pas a recuperer la valeur souhaitee.
sais tu pourquoi et comment je peux m'en sortir.
merci
laurent
pom - 16 juin 2005 à 15:52
Salut Laurent, excuse-moi, mais je n'ai rien compris à ton problème...

que veut dire
"j'ai deja un edit text, je lance le programme, je rentre une valeur et j'arrive a la recuperer. cependant je ne voudrais que certaines valeurs deja defnis" ?

qu'est-ce qu'un popupmenu ?

Peux-tu être un peu plus explicite s'il te plait ?

Merci
Ajouter un commentaire
Réponse
+1
moins plus
merci a toi encore une fois. j'ai commence a taper un peu pour voir comment ca s'affiche une matrice.
j'ai encore des problemes.
voila mon code:

a=get(handles.edit14,'String')
b='.txt'
d=strcat(a,b)
diary (d)
fprintf('f1=%5.3f','\t','f2=%5.3f','\t','\n',f1,f2)
disp('NUMBER FREQUENCY VALUE')
diary off

les 4ere lignes sont pour concatener un mot et .txt pour demander le nom de mon fichier et le cree.
mon fprintf, j'ai un soucis a partir de la. la frequence f1 et f2 ne sont pas les bonnes, et ca s'affichent plusisuer fois sur la meme ligne. ensuite number, frequency et value s'affiche a la suite....
je reflechis ce WE sur la matrice "A". je reviens lundi. je te tiens au courant.
merci encore
Laurent
Ajouter un commentaire
Réponse
+0
moins plus
deja, l'enregistrement dans un fichier, ca marche. c'est exactement ce que je voulais. par contre, il y a un moyen de choisir de l'emplacement et du nom du fichier dans lequel tu enregistres tes valeurs?
pour le probleme, j'utilise GUI de matlab. et c'est un peu comme Visual Basic. popupmenu et edittext, ce sont des Unites, des "objet " en gros. un popupmenu, c'est un menu deroulant. alors qu'un edittext, c'est une case ou tu peux entrer ta valeur toi meme.
voila. je ne sais si j'ai ete clair.
Laurent
laurenttls- 17 juin 2005 à 11:29
bjr pom. j'ai encore qqs petits soucis, et je pense que tu pourrais m'aider... a propos du fichier .txt
je donne un nom et je concatene avec.txt, comme ca il me cree sous le nom que je veux. par contre,
voila ce que j'aimerais faire:

------------------------------------------------------------------------
NUMBER .............FREQUENCY.................VALUES
------------------------------------------------------------------------
1 ......................... f1 ............................ v1
2 ......................... f2 ........................... v2
.... .... .....


je choisis deux frequence et une marche de frequence, je dois afficher ainsi ces differentes frequencede f1 a f2, par pas de prequence et les differentes valeurs coreespondantes, mais j'aierais que ca s'affiche comme ca. en VB je saurais le faire, mais j'ai essaye la meme avec matlab et j'y arrive pas.
je pense faire une boucle while... loop. a la fin de la procedure, je dois ouvrir le fichier, ca e pense que j'y arriverai et l'imprimer en option.
si tu pouvais m'aider, je te serais tres reconnaissant.
Laurent
pom - 17 juin 2005 à 14:44
Salut Laurent, si je t'ai bien compris, tu veux afficher toutes les frequences comprises entre f1 et f2 par un certain pas.

1e idee :
1) tu te crees une matrice A a 3 colonnes qui contient toutes les valeurs desirees
2) tu fais ensuite :

diary mon_fichier.txt
disp('NUMBER FREQUENCY VALUES')
A
diary off

2e idee

tu te crees trois vecteurs v1, v2 et v3 qui contiennent respectivement les numbers, frequency et values puis tu peux faire

diary mon_fichier.txt
disp('NUMBER FREQUENCY VALUES')
for i=1:length(v1)
fprintf('%5.5g','\t','%5.5g','\t','%5.5g','\n',v1(i),v2(i),v3(i))
end

diary off

voila, j'espere que ca t'aide...
laurenttlspom - 17 juin 2005 à 13:37
pom...
je voudrais juste savoir la presentation, comment faire...
Merci
Ajouter un commentaire
Réponse
+0
moins plus
salut pom
c bon en fait, ca s'affiche. enfin juste les premieres lignes, je n'ai pas encore trouve comment faire les vecteurs ni la matrice. je potasse. par contre, en tete de page je mets des valeurs de reference. sais tu comment les placer sur la meme ligne.
par exemple, je veux afficher:
frequence1= 900Hz. et il m'affcihe:
frequence1=
900Hz
as tu une idee pour ca?
et aussim peux tu m'expliquer un peu plus en details ton idee de vecteur ou de matrice.
merci
laurent
pom - 20 juin 2005 à 13:51
Salut Laurent,
tu veux afficher les fréquences et les valeurs correspndamntes. Ces valeurs sont donc bien stocker quelque part : dans un vecteur, dans un fichier, ou ailleurs.
Pour faire simple, supposons qu'elles soient stockées dans un vecteur F pour les fréquences et V pour les valeurs.
N est un vect
Tu vas donc te créer une matrice A a trois colonnes : 1e colonne le numéro, 2e colonne la fréquence et 3e colonne la valeur

A=zeros(length(F),3); % matrice a length(F) lignes et 3 colonnes ne contenant que des 0 (cf help zeros)

A(:,1)=1:length(F);

for i=1:length(F) % boucle sur les lignes
A(i,2)=F(i);
A(i,3)=V(i);
end

voilà ta matrice A est construite


tu veux afficher sur une même ligne les valeurs de référence. Utilise soit un fprintf soit un vecteur

vecteur :
[fréquence1 frequence2 frequance3]

fprintf :
v1=1:5;
v2=6:10;
for i=1:5,
fprintf('%3.3g \t %3.3g \n',v1(i),v2(i)),
end

regarde la doc fprintf et sprintf pour mieux comprendre.

Salut, et bon courage
laurent - 20 juin 2005 à 14:08
grand merci a toi.
pratiquement tout marche: l'affcihage sur une ligne, les frequences...
mais j'ai un dernier probleme: la boucle fait trois tours et apres elle s'arrete. je continue de chercher pourquoi mais si t'a une idee?
je pensais que comme j'attends des reponses d'une machine, elle reponds pas assez vite, peut etre un probleme de vitesse, ou de synchronisation. j'ai mis des pause, mais ca marche tjs pas.
connais tu pourquoi ou d'ou vient l'erreur?
laurent
pom - 20 juin 2005 à 14:33
Salut,
quelle est ta boucle ?
Affiche les valeurs du compteur (le fameux " i ") et regarde quand est-ce qu'il s'arrête.
Ajouter un commentaire
Réponse
+0
moins plus
c bon, c moi qui est mal tape la boucle, il fallait des ":" et pas des virgules. mais je comprends pas un truc.
quand je demande d'afficher sous matlab, c nikel, il m'affiche avec les bonnes colonnes, bien alignes. par contre apres, auqnd j'ouvre le .txt, il m'affcihe ca sur deux lignes completement decales...
qund j'imprime sou matlab, pas de pb au niveau de l'affichage et pb si j'imprime le .txt. connais tu le probleme?
le premier programme est bientot termine, et ceci beaucoup grace a toi. je te remercie pour cela
Laurent
Ajouter un commentaire
Réponse
+0
moins plus
Re-salut, non je ne sais pas.
Est-ce un pb de mise en page (cf les marges de ta feuille) ?

Là, je n'en sais rien.

Bonne continuation.

Pom
Ajouter un commentaire
Réponse
+0
moins plus
je ne sais, je vois vraiment pas, j'ai essaye de mettre des tab, des trucs pour reperer la marge. rien. bref, c pas grave pour ca
par contre, est ce que tu connais la commande pour imprimer?
j'ai lu la fonction print.
je mis print file_name
et il veut pas m'imprimer. je ne sais pas si c parce que l'imprimante est en reseau ou c un autre probleme.
Laurent
Ajouter un commentaire
Réponse
+0
moins plus
Salut, non je ne sais pas. Ne peux-tu pas imprimer sans passer par Matlab ? Tu peux ouvrir un shell et faire lpr non ?
laurenttls- 30 juin 2005 à 11:26
salut Kermitt31
j'ai compris ce que tu m'a dit. maintenant comment je fais pour utiliser ce temps?
tu connais "wait". j'ai lu le help, mais je ne comprend pas comment ca marche....
peux tu m'aider
laurent
laurenttlsKermitt31 - 30 juin 2005 à 11:56
c'est bon, j'ai pu exploiter le temps. mercia toi. j'ai utiliser tic toc....
bref, un dernier service. je dois affciher une grille. je rentre X et Y et un point doit apparaitre, ca pas de probleme. mais apres je dois choisir par exemple, droite, gauche, haut, bas, et une vitesse de deplacement. et bien sur le point doit bouger, temps reel si possible sinon c pas un probleme. sais tu comment faire ca? merci
Laurent
Kermitt31- 30 juin 2005 à 14:10
--been visiblement c'est juste une acquisition (haut bas gauche droite) au clavier pour savoir dans quel sens bouger le point et apres des maths (tu recalcules les coordonnées de ton nouveau point) et enfin un plot !
Proverbe Lapon:Girafe au pôl' Nord,
Eté de la mort.
Ajouter un commentaire
Réponse
+0
moins plus
je travaille sous windows ici.
tant pis pour l'imprimante, en fait, comme j'utilise une interface objet, je voulais mettre une option pour imprimer.
merci a toi en tout cas.
Laurent
Ajouter un commentaire
Réponse
+0
moins plus
Pour ceux qui sont toujours intéressés à tourner le texte, il faut utiliser l'option 'Rotation'.
Ex.
ylabel('Titre','Rotation',0);
Comme ça, le texte est tourné de zéro degrés.
Ajouter un commentaire
Réponse
+0
moins plus
OK merci
mais alors comment faire pour mettre en exposant (ou en indice) non pas dans un title mais dans un 'static text' lorsqu'on utilise le GUI Matlab.

Merci d'avance.
Msayle7- 16 avril 2012 à 10:04
tu utilise les mêmes commandes, ça doit marcher je pense ...
Ajouter un commentaire
Ce document intitulé « [MATLAB] Légende des axes » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?