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

text im plot mit legende

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2012, 08:33     Titel: text im plot mit legende
  Antworten mit Zitat      
moin,

ich arbeite noch nicht so lange mit Matlab, drum weiss ich leider nicht, ob das überhaupt möglich ist zu machen. bei google hab ich nichts dergleichen gefunden.

Ich mache einen scatterplot mit ländernamen. die beiden vektoren haben eine länge von 210. ich möchte jetzt aber die ländernamen dazuplotten. Da das ganze ziemlich unübersichtlich ist, möchte ich im plot selbst nur zahlen und in einer tabelle daneben zu den zahlen den ländernamen.

Ist das irgendwie zu realisieren?

Code:

figure
scatter(obs, fc)
text(x,y,name)
 


danke, lg
bianca


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 27.09.2012, 14:11     Titel:
  Antworten mit Zitat      
Du könntest das einfach in einer Schleife abarbeiten. Die x- und y-Koordinaten des Textes ggf. etwas verschieben (+eps).
Allerdings kann das natürlich auch chaotisch aussehen, wenn die Punkte dicht zusammenliegen. Grundsätzlich kriegst damit aber den Text neben die Punkte.

Kleines Beispiel
Code:

% Namen und Koordinaten erzeugen
name = {'eins','zwei','drei','vier'};
x = rand(1,4);
y = rand(1,4);

% plot
figure
scatter(x,y)

% Text hinzufügen
eps = 0.01;
for k = 1:length(x)
    text(x(k)+eps,y(k)+eps,name{k})
end
 


Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.09.2012, 09:23     Titel:
  Antworten mit Zitat      
Hallo Nras,

"eps" ist eine wichtige Matlab-Funktion. Den Namen als Variable zu verwenden kann zu unerwarteten Bugs führen. Besser Wäre z.B. "Eps" oder "shift".

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 28.09.2012, 09:41     Titel:
  Antworten mit Zitat      
Hallo Jan,

auch das ist natürlich richtig. Die Funktion habe ich bisher noch nicht kennengelernt und so wusste ich von ihr nicht. Selbstverständlich überschreibe ich auch nicht absichtlich bereits verwendete Namen.

Besten Gruß und Dank.

edit.:
Ich lese gerade, dass du sowieso nur zahlen neben den Punkten haben möchtest. Das geht dann natürlich noch einfacher mit:

Code:
x = rand(1,210);
y = rand(1,210);

figure
scatter(x,y)
shift = 0.01;

for k = 1:length(x)
    text(x(k)+shift,y(k)+shift,sprintf('%03i',k)) % oder einfach num2str(k) ohne führende Nullen
end


Ob die zugehörige Tabelle im Plot dann wirklich schön ist, weiß ich nicht. Die Tabelle könntest du vielleicht besser extra erstellen.
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.