WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

2 Colormap in einem Figure

 

enigma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.12.2009, 13:55     Titel: 2 Colormap in einem Figure
  Antworten mit Zitat      
Hallo,

ich möchte 2 verschiedene Colormaps in einem Bild verwenden.
Egal was ich mache, Matlab nimmt das letzte Colormap und malt alles damit aus. Meine Frage kann ich etwas ausmalen lassen, dann das Colormap löschen und dann das andere malen lassen?


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.12.2009, 18:21     Titel:
  Antworten mit Zitat      
Hallo,

schau mal in diesen Thread.
http://www.gomatlab.de/frage-zu-sur.....9,highlight,colormap.html
Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
enigma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2009, 22:26     Titel: 2 Colormap in einem Figure
  Antworten mit Zitat      
Ich habe diesen Beitrag vorher gelesen aber ich kann damit nichts anfangen.
Ich möchte nur ein paar Berge mit surfl mit einem colormap und ein paar Berge eben mit einem anderen colormap ausmalen lassen? Ist das überhaupt möglich?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.12.2009, 22:44     Titel:
  Antworten mit Zitat      
Hallo,

möglich ist viel... vielleicht hilft das direkter weiter:
http://www.mathworks.com/matlabcentral/fileexchange/7943
Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
enigma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2009, 11:43     Titel:
  Antworten mit Zitat      
aber hier sind verschiedene Plots.
Wie gesagt ich möchte eigentlich sowas
f = ..
surfl(x,y,f)
colormap1

g = ..
surfl(x,y,g)
colormap2

und das alles in einem plot
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.12.2009, 11:57     Titel:
  Antworten mit Zitat      
Hast du's denn mal ausprobiert?

Wenn ich diesen Kommentar zu dem Link lese

Zitat:
Great job!
Works great for plotting different plots and colormaps with hold on in the same figure and axes.


dann legt das nahe, dass genau das damit auch geht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
enigma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2009, 13:06     Titel:
  Antworten mit Zitat      
cool..
es hat funktioniert danke! Hast mein Tag gerettet Smile
 
pospiech
Forum-Century

Forum-Century


Beiträge: 130
Anmeldedatum: 03.09.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2010, 15:41     Titel:
  Antworten mit Zitat      
Ich habe genau dasselbe Problem, nur das die vorgeschlagene Lösung mit Matlab 2010 nicht mehr funktioniert.

Ich versuche mich jetzt an einer Colorbar die aus mehreren besteht und die Daten enstsprechend getrennt sind:

Code:

cmapdataPhase = colormap((blackgreen(COLORDEPTH)));    %
cmapdataIntensity = colormap((hot(COLORDEPTH)));    %
colormap([cmapdataPhase;cmapdataIntensity]);

dataPhase = ReadSimulationData(filename);
dataPhase = (dataPhase/pi)+1; % Range: 0-2

dataIntensity = (ReadSimulationData(filename2).^2);
dataIntensity = dataIntensity - min(min(dataIntensity));
dataIntensity = dataIntensity / max(max(dataIntensity));
dataIntensity = dataIntensity + 2; % Range 2-3

figure(1); clf;
sp1 = subplot(1,2,1);      

caxis([0 2]);
pcolor(dataPhase); shading flat;

sp2 = subplot(1,2,2);      
caxis([2 3]);
pcolor(dataIntensity); shading flat;

 


Das ergibt nur leider nur Murks:
Die colorbar ist in beiden Plots vollständig gezeigt und die Daten auch entsprechend eingfärbt. Also überhaupt nicht getrennt.

Wie also erzeigt plottet man Daten die nur einen Teil der colorbar nutzen?

Das Ergebnis ist als Bild angehangen.

multiplecolorbar.png
 Beschreibung:

Download
 Dateiname:  multiplecolorbar.png
 Dateigröße:  187.07 KB
 Heruntergeladen:  1480 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
pospiech
Forum-Century

Forum-Century


Beiträge: 130
Anmeldedatum: 03.09.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2010, 16:18     Titel:
  Antworten mit Zitat      
Es klappt mit folgendem Code die Bilder in verschiedenen Farben zu haben: (entnommen aus http://matlab.izmiran.ru/help/techd.....lots/axes_p18.html#12057)

Code:

colormap([cmapdataPhase;cmapdataIntensity]);

CmLength   = size(get(gcf,'Colormap'),1);% Colormap length
BeginSlot1 = 1;          % Beginning slot
EndSlot1   = size(cmapdataPhase,1); % Ending slot
BeginSlot2 = EndSlot1+1;
EndSlot2   = CmLength;
CLim1      = get(sp1,'CLim');% CLim values for each axis
CLim2      = get(sp2,'CLim');

set(sp1,'CLim',newclim(1,100,CLim1(1),CLim1(2),CmLength))
set(sp2,'CLim',newclim(101,200,CLim2(1),CLim2(2),CmLength))
set(hcb1, 'CLim', get(sp1,'CLim'));
set(hcb2, 'CLim', get(sp2,'CLim'));

 


Dann geht aber die erste cmap Achse von 0-4 (obwohl nur Werte von 0-2 vorhanden) und die zweite Achse von 0-3 obwohl nur Werte von 2-3 vorhanden) und in beiden colorbars wird wieder die komplette colormap angezeigt.
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2019, 09:37     Titel: Ein "Figure" - Mehrer "Colormaps"
  Antworten mit Zitat      
Hallo zusammen,

wie der Titel bereits andeutet, kämpfe ich gerade mit dem ähnlichen/gleichen Problem zwei unterschiedliche "Mesh's" unterschiedlich einzufärben - in dem selben figure versteht sich.

Bin hier im Forum auf diesen Beitrag gestoßen und habe den Vorschlag von Harald in meinem Skript implementiert, was aber aus welchem Grund auch immer nicht funktionieren mag.

Liegt es villeicht daran, dass ich der Funktion einen falschen Input übergebe?
Ich erhalte zusätzlich folgende Warnung:

Warning: You seem to be attempting to freeze a colorbar. This no longerworks. Please read the help for freezeColors for the solution.

Ich arbeite mit Matlab 2017a. Hat es villeicht damit was zu tun?

Stehe da etwas auf dem Schlauch und würde mich um Hilfestellung jeglicher Art freuen!

Schon mal besten Dank!!


Code:
figure('Name','Beispiel');
hold on
title('Beispiel');
    %% 1
    uq = griddata(x,y,avgSpdMat_1,xq,yq,'cubic');
    a = mesh(xq,yq,uq)
    hold on
    grid minor
    colormap autumn
    setColormap(colorbar);
    hold on
   
    %% 2
    oq = griddata(x,y,avgSpdMat_2,xq,yq,'cubic');
    b = mesh(xq,yq,oq)
    hold on
    grid minor
    colormap winter
    setColormap(colorbar);
    grid minor  
    hold on


10.PNG
 Beschreibung:

Download
 Dateiname:  10.PNG
 Dateigröße:  382.19 KB
 Heruntergeladen:  241 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.