IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Représentation matrice avec heatmap


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Représentation matrice avec heatmap
    Bonjour à tous,

    J'ai la matrice suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Map2 = 1	1,60000000000000	1,22247706422018	0,790540540540541	2,50409836065574	1,37398373983740	1,05075187969925	1,09488272921109	1,08102345415778	1,31588132635253	0,835714285714286	2,15981012658228	1,21582733812950	1,29449152542373	1,27636363636364
    0,625000000000000	1	0,764048165137615	0,494087837837838	1,56506147540984	0,858739837398374	0,656719924812030	0,684301705756930	0,675639658848614	0,822425828970332	0,522321428571429	1,34988132911392	0,759892086330935	0,809057203389831	0,797727272727273
    0,818011257035647	1,30881801125704	1	0,646671061305208	2,04838064774090	1,12393416617093	0,859526865945351	0,895626397628582	0,884289354620625	1,07640573787937	0,683623693379791	1,76674899660389	0,994560449201615	1,05890863993386	1,04407982261641
    1,26495726495727	2,02393162393162	1,54638124362895	1	3,16757741347905	1,73803071364047	1,32915622389307	1,38497986259180	1,36744847192608	1,66453364359124	1,05714285714286	2,73206751054852	1,53796962430056	1,63747645951036	1,61454545454545
    0,399345335515548	0,638952536824877	0,488190513371072	0,315698677400805	1	0,548693997578274	0,419612861942089	0,437236310846981	0,431701674000817	0,525491069770896	0,333738601823708	0,862510099649879	0,485534976274300	0,516949152542373	0,509709864603482
    0,727810650887574	1,16449704142012	0,889731827805222	0,575363825363826	1,82250945775536	1	0,764748409485252	0,796867311792685	0,786780383795309	0,957712444623440	0,608241758241758	1,57193281402142	0,884892086330935	0,942144719687093	0,928951048951049
    0,951699463327370	1,52271914132379	1,16343076594837	0,752357008170962	2,38314906595501	1,30761958782379	1	1,04199930579660	1,02880944116626	1,25232355209221	0,795348837209302	2,05549013835737	1,15710222519659	1,23196689002759	1,21471458773784
    0,913339824732230	1,46134371957157	1,11653698757403	0,722032158741020	2,28709275783358	1,25491406812802	0,959693537641572	1	0,987341772151899	1,20184681997923	0,763291139240506	1,97264060246755	1,11046352791185	1,18231066294787	1,16575373993096
    0,925049309664694	1,48007889546351	1,13085156433780	0,731288981288981	2,31641445985708	1,27100271002710	0,971997300944669	1,01282051282051	1	1,21725511254307	0,773076923076923	1,99793086660175	1,12470023980815	1,19746849196002	1,18069930069930
    0,759946949602122	1,21591511936340	0,929017715912686	0,600768872320597	1,90298191068400	1,04415475189235	0,798515685766139	0,832052790236012	0,821520476435556	1	0,635098522167488	1,64134111741598	0,923964276854379	0,983744886031561	0,969968652037618
    1,19658119658120	1,91452991452991	1,46279306829766	0,945945945945946	2,99635701275046	1,64408310749774	1,25730994152047	1,31011608623549	1,29353233830846	1,57455885204576	1	2,58438818565401	1,45483613109512	1,54896421845574	1,52727272727273
    0,463003663003663	0,740805860805861	0,566011358671909	0,366023166023166	1,15940671350507	0,636159504452187	0,486501969208736	0,506934714184181	0,500517819067926	0,609257874179340	0,386938775510204	1	0,562932511133950	0,599354317998386	0,590961038961039
    0,822485207100592	1,31597633136095	1,00546930134086	0,650207900207900	2,05958385876419	1,13008130081301	0,864227877385772	0,900524848286042	0,889125799573561	1,08229292522486	0,687362637362637	1,77641187925998	1	1,06470013037810	1,04979020979021
    0,772504091653028	1,23600654664484	0,944368534062073	0,610695802185164	1,93442622950820	1,06140806088912	0,811710126379779	0,845801388195799	0,835095041509776	1,01652370873714	0,645592705167173	1,66846215997845	0,939231593448645	1	0,985996131528046
    0,783475783475784	1,25356125356125	0,957781175671084	0,619369369369369	1,96190042501518	1,07648298705209	0,823238652186021	0,857814104082761	0,846955697701966	1,03096115312520	0,654761904761905	1,69215893108298	0,952571276312284	1,01420276208412	1
    J'aimerai la représenter à l'aide d'une heatmap mais je n'arrive pas à avoir le résultat voulu.

    En effet, mon souhait serait d'obtenir une figure avec une teinte de rouge clair à rouge foncé pour les valeurs de 1 (rouge clair) à 0 (rouge foncé) et du vert clair au vert foncé pour les valeurs de 1 (vert clair) à 2 (vert foncé) (si valeur supérieur à 2 mettre la même couleur que 2).

    Je sui complètement bloqué et je serai très reconnaissant d'avoir un peu d'aide.

    Merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Voici une solution semblable à celle que j'avais proposée ici : [contourf] faire varier colormap en fonction des valeurs positives ou négatives

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Map2 = [1	1.60000000000000	1.22247706422018	0.790540540540541	2.50409836065574	1.37398373983740	1.05075187969925	1.09488272921109	1.08102345415778	1.31588132635253	0.835714285714286	2.15981012658228	1.21582733812950	1.29449152542373	1.27636363636364
    0.625000000000000	1	0.764048165137615	0.494087837837838	1.56506147540984	0.858739837398374	0.656719924812030	0.684301705756930	0.675639658848614	0.822425828970332	0.522321428571429	1.34988132911392	0.759892086330935	0.809057203389831	0.797727272727273
    0.818011257035647	1.30881801125704	1	0.646671061305208	2.04838064774090	1.12393416617093	0.859526865945351	0.895626397628582	0.884289354620625	1.07640573787937	0.683623693379791	1.76674899660389	0.994560449201615	1.05890863993386	1.04407982261641
    1.26495726495727	2.02393162393162	1.54638124362895	1	3.16757741347905	1.73803071364047	1.32915622389307	1.38497986259180	1.36744847192608	1.66453364359124	1.05714285714286	2.73206751054852	1.53796962430056	1.63747645951036	1.61454545454545
    0.399345335515548	0.638952536824877	0.488190513371072	0.315698677400805	1	0.548693997578274	0.419612861942089	0.437236310846981	0.431701674000817	0.525491069770896	0.333738601823708	0.862510099649879	0.485534976274300	0.516949152542373	0.509709864603482
    0.727810650887574	1.16449704142012	0.889731827805222	0.575363825363826	1.82250945775536	1	0.764748409485252	0.796867311792685	0.786780383795309	0.957712444623440	0.608241758241758	1.57193281402142	0.884892086330935	0.942144719687093	0.928951048951049
    0.951699463327370	1.52271914132379	1.16343076594837	0.752357008170962	2.38314906595501	1.30761958782379	1	1.04199930579660	1.02880944116626	1.25232355209221	0.795348837209302	2.05549013835737	1.15710222519659	1.23196689002759	1.21471458773784
    0.913339824732230	1.46134371957157	1.11653698757403	0.722032158741020	2.28709275783358	1.25491406812802	0.959693537641572	1	0.987341772151899	1.20184681997923	0.763291139240506	1.97264060246755	1.11046352791185	1.18231066294787	1.16575373993096
    0.925049309664694	1.48007889546351	1.13085156433780	0.731288981288981	2.31641445985708	1.27100271002710	0.971997300944669	1.01282051282051	1	1.21725511254307	0.773076923076923	1.99793086660175	1.12470023980815	1.19746849196002	1.18069930069930
    0.759946949602122	1.21591511936340	0.929017715912686	0.600768872320597	1.90298191068400	1.04415475189235	0.798515685766139	0.832052790236012	0.821520476435556	1	0.635098522167488	1.64134111741598	0.923964276854379	0.983744886031561	0.969968652037618
    1.19658119658120	1.91452991452991	1.46279306829766	0.945945945945946	2.99635701275046	1.64408310749774	1.25730994152047	1.31011608623549	1.29353233830846	1.57455885204576	1	2.58438818565401	1.45483613109512	1.54896421845574	1.52727272727273
    0.463003663003663	0.740805860805861	0.566011358671909	0.366023166023166	1.15940671350507	0.636159504452187	0.486501969208736	0.506934714184181	0.500517819067926	0.609257874179340	0.386938775510204	1	0.562932511133950	0.599354317998386	0.590961038961039
    0.822485207100592	1.31597633136095	1.00546930134086	0.650207900207900	2.05958385876419	1.13008130081301	0.864227877385772	0.900524848286042	0.889125799573561	1.08229292522486	0.687362637362637	1.77641187925998	1	1.06470013037810	1.04979020979021
    0.772504091653028	1.23600654664484	0.944368534062073	0.610695802185164	1.93442622950820	1.06140806088912	0.811710126379779	0.845801388195799	0.835095041509776	1.01652370873714	0.645592705167173	1.66846215997845	0.939231593448645	1	0.985996131528046
    0.783475783475784	1.25356125356125	0.957781175671084	0.619369369369369	1.96190042501518	1.07648298705209	0.823238652186021	0.857814104082761	0.846955697701966	1.03096115312520	0.654761904761905	1.69215893108298	0.952571276312284	1.01420276208412	1];
     
    Map2(Map2(:)>2) = 2;
     
    N1 = 32;
    N2 = 32;
     
    idx = Map2(:)<=1;
     
    Map2(idx) = Map2(idx)*(N1-1)+1;
    Map2(~idx) = (Map2(~idx)-1)*(N2-1)+1+N1;
     
    Map2 = round(Map2);
     
    r = linspace(150, 255, N1)/255;
    g = zeros(1, N1);
    b = zeros(1, N1);
     
    cmap = [r(:) g(:) b(:)];
     
    r = zeros(1, N2);
    g = linspace(255, 150, N2)/255;
    b = zeros(1, N2);
     
    cmap = [cmap ; r(:) g(:) b(:)];
     
    figure
    colormap(cmap)
     
    imagesc(Map2);
    axis image
     
    set(gca, 'clim', [1 N1+N2])
     
    colorbar('ytick', 0:16:64, 'yticklabel', num2str((0:16:64).'/32))
    Images attachées Images attachées  
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Merci beaucoup pour ta réponse, cela marche très bien.

    Une question : lorsque j'ai un élément de ma matrice égale à 1 (les éléments diagonaux dans notre cas), est-il possible de les représenter en grisé plutôt qu'en rouge. En effet j'aimerai bien montré une "couleur neutre dans ce cas".

    Merci beaucoup.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Excuse-moi, j'ai posé ma question trop vite.

    En ajoutant le bon code couleur à cmap(32,:), je peux grisé ma map.

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Représentation d'une matrice avec inversion des gris.
    Par macErmite dans le forum MATLAB
    Réponses: 3
    Dernier message: 08/01/2016, 13h13
  2. Créer un type matrice avec des templates
    Par souading3000 dans le forum C++
    Réponses: 2
    Dernier message: 15/06/2006, 11h24
  3. Redimensionner une matrice avec "reshape"
    Par kmaniche dans le forum Images
    Réponses: 9
    Dernier message: 07/06/2006, 18h35
  4. représentation graphique avec ACCESS
    Par emma333 dans le forum Access
    Réponses: 2
    Dernier message: 02/03/2006, 11h27
  5. Calculer un inverse de matrice avec boost?
    Par Clad3 dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 02/06/2005, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo