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

Contourlabels und Achsenticks

 

smaica
Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.02.2015, 13:24     Titel: Contourlabels und Achsenticks
  Antworten mit Zitat      
Hallo,

ich habe mit einer Grafik mehrere Schwierigkeiten.

Zum einen möchte ich gerne sowohl den Namen als auch die Anzahl der Labels bei einem Contourplot spezifizieren.
Bei dem Plot möchte ich pro Contourlinie nur ein Label und das sollte so aussehen: "z = ..." anstatt nur der Wert.

Außerdem habe ich Probleme mit den Achsenticks. Ich hätte da gerne eine Gradangabe mit drin (latex: \circ). Das sollte in Matlab auch funktionieren, nur weiß ich leider nicht, wie ich das umsetze.

Code:
set(gca,'TickLabelInterpreter','tex')
führt zu der Fehlermeldung:

Error using hg.axes/set
The name 'TickLabelInterpreter' is not an accessible property for an instance of class
'axes'.



Hier ist der code zum Plot:

Code:

clear all

[x,y,z] = ellipsoid(20,20,1,100,100,10,360);

x(z>10.1)=NaN;y(z>10.1)=NaN;z(z>10.1)=NaN;
x(z<0)=NaN;y(z<0)=NaN;z(z<0)=NaN;
x(y>100)=NaN;z(y>100)=NaN;y(y>100)=NaN;
x(y<0)=NaN;z(y<0)=NaN;y(y<0)=NaN;
y(x>100)=NaN;z(x>100)=NaN;x(x>100)=NaN;
y(x<0)=NaN;z(x<0)=NaN;x(x<0)=NaN;

mesh(x,y,z)
axis([0 100 0 100 0 10])
%colormap(bone)
box on
grid on
hold on
[C,h] = contour(x,y,z);
set(gca,'TickLabelInterpreter','tex');
clabel(C,h,'FontSize',14,'Color','k','Rotation',0);
title('Data','FontSize',16,'FontWeight','bold','Color','k');
ylabel('Latitude','FontSize',16,'FontWeight','bold','Color','k')
xlabel('Longitude','FontSize',16,'FontWeight','bold','Color','k')
zlabel('Altitude in km','FontSize',16,'FontWeight','bold','Color','k')
set(gca,'ztick',[0,2,4,6,8,10]);
set(gca,'zticklabel',{'0.5','2.5','4.5','6.5','8.5','10.5'})
set(gca,'XTick',[0,25,50,75,100]);
set(gca,'XTickLabel',{[num2str(10),'\circ W'];[num2str(20),' W'];...
    [num2str(30),' W'];[num2str(40),' W'];...
    [num2str(50),' W']});
set(gca,'YTickLabel',{[num2str(10),'\circ N'];[num2str(20),' N'];...
    [num2str(30),' N'];[num2str(40),' N'];...
    [num2str(50),' N']});
set(gca,'YTick',[0,25,50,75,100]);
set(gca,'FontSize',16)
set(gca,'XMinorGrid','on');
set(gca,'YMinorGrid','on');
hold off
 



Vielen Dank für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Sigggi
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.02.2015, 22:56     Titel:
  Antworten mit Zitat      
Hallo,

bei mir (R2012a, Linux 32bit) haben die Achsenlabels und der Titel eigene Handles:

Code:

set(get(gca, 'title'), 'String','Data','FontSize',16,'FontWeight','bold','Color','k');
set(get(gca,'XLabel'), 'String','Longitude','FontSize',16,'FontWeight','bold','Color','k')
set(get(gca, 'ylabel'),'String','Latitude','FontSize',16,'FontWeight','bold','Color','k')
set(get(gca,'ZLabel'), 'String','Altitude in m','FontSize',16,'FontWeight','bold','Color','k')
 


In die Ticklabels kann ich direkt "°" einsetzen:

Code:

set(gca,'YTickLabel',{'0';'10° N';'20° N';'30° N';'40° N';'50° N'});
 


Hilft Dir das weiter?

Gruß, Siggi.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
smaica
Themenstarter

Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2015, 17:13     Titel:
  Antworten mit Zitat      
Hallo Sigggi,

du hast Recht, das "°" kann ich direkt eingeben. Vielen Dank, daran habe ich nciht gedacht. Allerdings braucht ich auch noch an einigen Stellen z.B. Griechische Buchstaben als Achsenbeschriftung, das klappt damit leider nicht.

Hast du noch eine Idee, wie ich die Contour-Labels festlegen könnte?

Viele Grüße,
smaica
Private Nachricht senden Benutzer-Profile anzeigen
 
Sigggi
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2015, 18:48     Titel:
  Antworten mit Zitat      
Hallo smaica,

die Contourlabels sind scheinbar auch nur Textfelder. Mit

Code:

texthandle = clabel(C,h,'FontSize',14,'Color','k','Rotation',0);
 


bekommst Du die handles und kannst mit get bzw. set darauf zugreifen.

Für Labels und Textfelder funktioniert '\alpha'.

Gruß, Siggi.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
smaica
Themenstarter

Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2015, 20:06     Titel:
  Antworten mit Zitat      
Hallo Siggi,

vielen Dank dafür!
allerdings habe ich jetzt das Problem, wenn ich versuche den text so anzugeben und schreibe:

Code:

[C,h] = contour(x,y,z);
zlab = clabel(C,h,'FontSize',14,'Color','k','Rotation',0);
set(zlab,'String',{'1km';'2km';'3km';'4km';'5km';'6km';'7km';'8km';'9km';'10km'});
 


dann wird an jeder Stelle, an der ein Label angegeben wird ein Vektor mit dem Strings 1km bis 10km geschrieben. Wie spezifiziere ich, wie bei den X und Y ticks, dass ich diese Strings nur an die jeweilige Labelstelle setze?

Viele Grüße,
smaica
Private Nachricht senden Benutzer-Profile anzeigen
 
Sigggi
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2015, 23:46     Titel:
  Antworten mit Zitat      
Hallo Smaica,

das sind alles einzelne Textfelder, die dann auch einzeln bearbeitet werden wollen (sonst bekommt jedes Textfeld alle Werte):

Code:

for k=1:length(zlab);
set(zlab(k), 'String', [get(zlab(k), 'String') ' km']);
end
 


Gruß, Siggi.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.