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

Plotten von 2 Vektoren mit mehreren Spalten in Graustufen

 

niniwe
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2014, 16:45     Titel: Plotten von 2 Vektoren mit mehreren Spalten in Graustufen
  Antworten mit Zitat      
Hallo an alle,

ich stelle mich mal wieder doof an und hoffe ihr könnt mir helfen:

Ich plotte zwei vektoren mit mehreren Spalten und möchte gerne das diese in Graustufen statt im üblichen (Blau, Rot, Grün, ...)

Ich hab versucht die Colormap zu verändern aber das hat Null Effect auf die Farben meiner Linien.

Code:

clear all
figure
set(gcf, 'color', [1 1 1])
colormap(gray)

x=linspace(1,100,20);
xprob=[x; x; x];
y=magic(20);
prob=y(1:3 , :);
plot(xprob',prob', 'LineWidth', 2)
 


Nun könnte ich die Spalten einfach einzeln plotten, schon klar, aber ich wollte einfach mal fragen ob es nicht auch eine total schöne und geschickte Lösung gibt.

Vielen Dank schon mal Cool
Nina
Private Nachricht senden Benutzer-Profile anzeigen


Bela1337
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2014, 18:37     Titel:
  Antworten mit Zitat      
Hi,
hab sowas ähnliches auch mal versucht und dafür statt plot() imshow() verwendet. Damit kannst du beliebig einstellen welcher Wert schwarz und welcher weiß sein soll.

imshow(Vektor,[0 9]); %zeigt Vektor mit 0 für schwarz und 9 für weiß

Vielleicht hilft dir das weiter.
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 09:40     Titel:
  Antworten mit Zitat      
Ich hab leider eine ziemlich alte matlab version (7.1) und imshow kennt er nicht..
braucht mal wahrscheinlich eine toolbox die ich nicht habe..

aussderdem hab ich ja zwei vektoren..

danke trotzdem Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.12.2014, 10:48     Titel:
  Antworten mit Zitat      
Moin,
versuche mal das:

Code:
p=plot(xprob',prob', 'LineWidth', 2)
set(p,'Color','k','LineStyle',':')


Grüße Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 13:51     Titel:
  Antworten mit Zitat      
Hi Hubertus,

das klappt prinzipiell, jetzt sind aber alle drei Linien schwarz und gepunktet.

ich habs mittlerweile mit einer Schleife gelöst:

Code:
clear all
figure
x=linspace(1,100,20);
xprob=[x; x; x]';
y=magic(20);
prob=y(1:3 , :);
prob=prob';

for j=1:3
    ci=0+(j-1)*0.35;
    plot(xprob(:,j),prob(:,j), 'color', [ci ci ci], 'LineWidth', 2)
    hold on
end


würde mich aber natürlich trotzdem interessieren obs auch schöner geht. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.12.2014, 15:50     Titel:
  Antworten mit Zitat      
Hallo niniwe,

das habe ich wohl falsch verstanden. Ich glaubte, es geht nur darum, die Farben auf SW zu setzen. Du kannst natürlich auch im Plot unterschiedliche Grautöne erzeugen - ohne Schleife:

Code:
plot(prob','color',[.3 .3 .3]);
hold on    %usw.
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 16:54     Titel:
  Antworten mit Zitat      
OOOh sehr gut Smile

Danke! Very Happy

Eine Frage hab ich noch: Kann man einstellen wie stark das ganze variiert, also wie stark sich der Grauton von zur nächsten Linie unterscheidet?

So viele Fragen... mit den Grafik sachen bin ich irgendwie noch nicht so richtig warm geworden.. Rolling Eyes

Vielen Dank auch deswegen für die Hilfe, ich lerne hier immer was nützliches dazu Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.12.2014, 18:38     Titel:
  Antworten mit Zitat      
Der Unterschied in den Grautönen wird hier festgelegt: [.3 .3 .3] Dagegen ergibt: [.7 .7 .7] einen dunkleren Grauton.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.12.2014, 19:49     Titel:
  Antworten mit Zitat      
Wozu gibt es denn aber verschiedene Colormap, wenn man sie nicht nutzen kann?

Mittlerweile gehe ich hier von einem Bug aus. Bei folgendem Code

Code:

clear all;
figure('color', [1 1 1]');
hAx = axes('nextplot','add');
x=linspace(1,100,20);
xprob=[x; x; x];
y=magic(20);
prob=y(1:3 , :);

colormap(hAx,gray);
cmap = colormap;
plot(hAx,xprob',prob','LineWidth', 2);
set(hAx,'ColorOrder',cmap);
drawnow;
 


wird unter View -> axes properties die Gray map angegeben. Ergo wurde sie auch richtig zugewiesen. Warum wird sie aber nicht dargestellt?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.12.2014, 19:57     Titel:
  Antworten mit Zitat      
Die Reihenfolge der Aufrufe ist das Problem. So geht es:

Code:

clear all;
figure('color', [1 1 1]');
hAx = axes('nextplot','add');
x=linspace(1,100,20);
xprob=[x; x; x];
y=magic(20);
prob=y(1:3 , :);

colormap(gray);
cmap = colormap;
set(hAx,'ColorOrder',cmap);
plot(hAx,xprob',prob','LineWidth', 2);
 


Du könntest die Farben auch selbst definieren

Code:

...
cmap = [.3 .3 .3; .6 .6 .6; .9 .9 .9]; % 3 verschiedene RGB Farben
set(hAx,'ColorOrder',cmap);
plot(hAx,xprob',prob','LineWidth', 2);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2014, 09:28     Titel:
  Antworten mit Zitat      
Super! Da hab ich mal wieder was gelernt, muss ich nur sehen, dass ich mir das jetzt auch merke...

Der zweite Code funktioniert prima Smile


Beim ersten Code wird bei mir jetzt alles in Schwarz dargestellt, kann aber daran liegen das meine Version ein kleines bisschen älter ist (7.1) ... war vielleicht wirklich ein Bug...

Vielen Dank auf jeden Fall, das ist sehr viel schöner als die Schleifenlösung! Smile
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 - 2025 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.