[Users-fr] affichage 2D de matrice
Stéphane Mottelet
stephane.mottelet at utc.fr
Lun 10 Mar 18:09:39 CET 2014
Le 10/03/2014 14:45, Samuel Gougeon a écrit :
> Le 10/03/2014 11:16, Antoine a écrit :
>> Bonjour,
>>
>> Je vais essayer d'être plus précis.
>> Je souhaite afficher les deux surfaces dans deux fenêtres différentes
>> (fenêtre 1 et 2).
>> Par contre je cherche à imposer une table de couleur dans la fenêtre
>> 2 qui est la même que celle de la fenêtre 1.
>>
>> Pour l'instant, j'arrive à imposer la même table de couleur dans la
>> fenêtre 1 et 2, le problème est que la surface de la fenêtre 2 ne
>> respecte pas l'échelle imposée.
>>
>> //fenetre 1
>> f=scf();
>> f.color_map = jetcolormap(256);
>> colorbar(min(data),max(data),[1,round(max(data)-min(data))],fmt='%d')
>> surf(matX,matY,data');
>> //fenetre 2
>> f=scf();
>> f.color_map = jetcolormap(256);
>> colorbar(min(data),max(data),[1,round(max(data)-min(data))],fmt='%d') // choisi identique a fenêtre 1
>> surf(I,J,Data); //Data est une interpolation de data
>> Merci
>>
>> Antoine
>>
>>
>> Le 10/03/2014 10:13, Samuel Gougeon a écrit :
>>> Bonjour,
>>>
>>> Le 10/03/2014 09:58, Antoine a écrit :
>>>> .../...
>>>> j'ai un petit soucis ici au niveau de la colorbar, j'aimerai que
>>>> les couleurs soient les mêmes sur mes deux figures
>>>> cependant l'interpolation engendre des erreurs sur les bords de la
>>>> matrice, qui fausse mon échelle dans la seconde figure
>>> Vous pouvez soit dessiner chaque surface dans une fenêtre distincte
>>> (chacune ayant sa propre table de couleurs),
>>> soit utiliser le mode s.cdata_mapping = "direct"; lorsque plusieurs
>>> surfaces (et graphes) doivent partager
>>> la même table de couleurs sans tous en couvrir toute l'étendue.
> Oui, dans ce cas également vous devez utiliser le mode cdata_mapping =
> "direct"; après avoir converti
> vos données en Z en n° de couleurs.
> La possibilité de mettre en oeuvre plus facilement une correspondance
> Z=> n° de couleurs en mode
> "scaled" -- mais sur une étendue de la table au choix [(zmin, c_min),
> (zmax, cmax)], sans avoir à dénaturer
> les données -- a été demandée, avec la proposition concrète ci-dessus,
> mais a récemment été classée sans suite :
> http://bugzilla.scilab.org/show_bug.cgi?id=11059
>
> Samuel
>
>
Bonjour,
Avec le module atoms "plotlib", il est possible de résoudre le problème
évoqué en utilisant la macro "caxis" (même comportement que sous
Matlab). par exemple :
x=1:2;
y=1:2;
z=[1 2;3 4]
C=splin2d(x,y,z);
[xp,yp]=meshgrid(1:0.05:1.5,1:0.05:1.5);
zp=interp2d(xp,yp,x,y,C);
figure(0);
surf(x,y,z');
shading interp
colorbar top
ca=caxis();
figure(1);
surf(xp,yp,zp);
colorbar top
caxis(ca);
S.
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20140310/cdfbca36/attachment.htm>
Plus d'informations sur la liste de diffusion users-fr