2009-09-25 16 views
1

Dans GNU Octave, vous pouvez créer une image où différentes couleurs représentent des valeurs différentes dans une matrice. Vous pouvez également ajouter une barre de couleurs, qui montre quelle couleur correspond à quelle valeur.Barre de couleurs et unités Octave

Est-il possible d'ajouter des unités aux valeurs affichées dans la barre de couleurs? Au lieu de dire "0.36", il dirait "0.36 V/nm"? Je sais que c'est possible dans Matlab, mais je n'arrive pas à comprendre comment le faire dans Octave. Des bonnes solutions de contournement?

Je suppose que quelqu'un ici va mentionner que je devrais utiliser matplotlib à la place (cela se produit généralement). Comment voulez-vous accomplir la même chose avec ça?

Répondre

2

La réponse matplotlib (en utilisant pylab) est

imshow(random((20,20))) 
colorbar(format='%.2f V/nm') 

Dans Octave, il semble que les travaux suivants (mais je ne suis pas expert Octave alors peut-être il y a une meilleure façon):

c=colorbar(); 
labels = {}; 
for v=get(c,'ytick'), labels{end+1} = sprintf('%.2f V/nm',v); end 
set(c,'yticklabel',labels); 
+0

I n'a pas réussi à faire fonctionner votre code Octave (la version 3.0 est peut-être trop ancienne), mais puisque pylab permet un code très semblable à Octave, je pourrais facilement transférer mon code pour l'utiliser à la place. – pafcu

+0

J'ai la version 3.2.2 donc ça pourrait bien être un problème de version. Est-ce que get (c, 'yticklabel') retourne quelque chose sur votre version? Pouvez-vous utiliser set (c, 'yticklabel') pour faire des étiquettes de tick à la main? –

Questions connexes