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

Legende legend, Farben mehrerer Graphen zusammenfassen

 

art-b
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 18.09.11
Wohnort: Deutschland!
Version: ---
     Beitrag Verfasst am: 04.06.2012, 18:36     Titel: Legende legend, Farben mehrerer Graphen zusammenfassen
  Antworten mit Zitat      
Hallo,

ich habe 4 Matrizen und plotte diese, ich brauche zusätzlich noch eine
Legende siehe Bild.

Code:

plot(U,V,'LineStyle','+'); % A
hold on;
plot(X,Y); % B
hold off;

% legend(???);
 


Hat einer eine Idee wie man das macht?

legend.png
 Beschreibung:

Download
 Dateiname:  legend.png
 Dateigröße:  37.75 KB
 Heruntergeladen:  595 mal
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 04.06.2012, 20:29     Titel:
  Antworten mit Zitat      
Schaue hier rein
besonderes das Beispiel Example — One Legend Entry for a Group of Objects
Private Nachricht senden Benutzer-Profile anzeigen
 
art-b
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 18.09.11
Wohnort: Deutschland!
Version: ---
     Beitrag Verfasst am: 04.06.2012, 20:50     Titel:
  Antworten mit Zitat      
@denny danke!

Mir geht es mehr darum wie ich die Legende mit den bunten Zeichen
erstellen kann (s. Bild1).

Abgeänderter Code (Resultat in Bild2):
Code:

t = 0:.1:2*pi;
for k=1:5
    offset = k/7;
    m(:,k) = t+offset';
end
hSLines = plot(t,sin(m),'LineStyle','+');hold on
hCLines = plot(t,cos(m));
hSGroup = hggroup;
hCGroup = hggroup;
set(hSLines,'Parent',hSGroup)
set(hCLines,'Parent',hCGroup)
% Include these hggroups in the legend:
set(get(get(hSGroup,'Annotation'),'LegendInformation'),...
    'IconDisplayStyle','on');
set(get(get(hCGroup,'Annotation'),'LegendInformation'),...
    'IconDisplayStyle','on');
legend('Sine','Cosine')
grid on;
 


Ich will das so wie in Bild3.

Gibts einen Befehl mit dem man evtl. einen Text bunt machen kann?
Dann könnte man einfach ein Textfeld einfügen und ein Paar ++++
bunt machen?

Bild3.png
 Beschreibung:

Download
 Dateiname:  Bild3.png
 Dateigröße:  45.91 KB
 Heruntergeladen:  545 mal
Bild2.png
 Beschreibung:

Download
 Dateiname:  Bild2.png
 Dateigröße:  44.51 KB
 Heruntergeladen:  524 mal
Bild1.png
 Beschreibung:

Download
 Dateiname:  Bild1.png
 Dateigröße:  2.25 KB
 Heruntergeladen:  556 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 05.06.2012, 15:07     Titel:
  Antworten mit Zitat      
Also LEGEND erstellt auch nichts anderes als Axes und Plots
Da musst dir das Handle von Legend holen und dann dort manipulieren
ist etwas umständlich, vielleicht geht es irgendwie einfacher
fürs Beispiel sieht es dann so aus:
Code:

t = 0:.1:2*pi;
for k=1:5
    offset = k/7;
    m(:,k) = t+offset';
end
hSLines = plot(t,sin(m),'+');
hold on
hCLines = plot(t,cos(m));

hSGroup = hggroup;
hCGroup = hggroup;
set(hSLines,'Parent',hSGroup)
set(hCLines,'Parent',hCGroup)
% Include these hggroups in the legend:
set(get(get(hSGroup,'Annotation'),'LegendInformation'),...
    'IconDisplayStyle','on');
set(get(get(hCGroup,'Annotation'),'LegendInformation'),...
    'IconDisplayStyle','on');
legnames = {'Sine','Cosine'};

hl = legend(legnames);
grid on;

del_plots = findobj(hl,'Type','line');

mrkr     = {'+','none'};
for k=1:length(legnames)
   obj    = findobj(hl,'Tag',legnames{k});
%    mrkr   = get(obj,'Marker');
   mrkrsz = get(obj,'MarkerSize');
   lnstyl = get(obj,'LineStyle');
   lnwdth = get(obj,'LineWidth');
   x      = get(obj,'XData');
   y    = unique(get(obj,'YData'));
   dist = (x(end)-x(1))/(length(hSLines)-1);
   x    = x(1):dist:x(end);
   x    = [x(1:end-1);x(2:end)];
   plot(x,ones(size(x))*y, ...
      'Marker'     , mrkr{k},...
      'MarkerSize' , mrkrsz,...
      'LineStyle'  , lnstyl, ...
      'LineWidth'  , lnwdth, ...
      'Parent'     , hl);
end

delete(del_plots);

hold off;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
art-b
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 18.09.11
Wohnort: Deutschland!
Version: ---
     Beitrag Verfasst am: 05.06.2012, 16:44     Titel:
  Antworten mit Zitat      
@ denny, danke!

Ja so sieht es gut aus ein paar Ändereungen noch damit
alle '+' und '-' die richtige Farbe und auch Anzahl haben.

denny's Resultat siehe bild.png

bild.png
 Beschreibung:

Download
 Dateiname:  bild.png
 Dateigröße:  41.19 KB
 Heruntergeladen:  582 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 - 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.