2013-02-25 48 views
5

Ich versuche, die Bildachsenbeschriftungen mit einer gewissen Breite/Länge zu ändern, aber ich finde nicht, wie es geht. Ich versuchte, einige Grundbefehle wie:So ändern Sie die Bildachsenbeschriftungen

imagesc(data) 
axis(meshgrid([-180:20:180],[-90:20:90])) 
colorbar 

aber diese Expression erschienen:

imagesc (Daten), Achse (meshgrid ([- 180: 20: 180], [- 90:20:90 ])), colorbar Operanden zum || und & & Operatoren müssen in logische Skalar Werte konvertiert werden können.

Error in axis>allAxes (line 448) 
result = all(ishghandle(h)) && ... 

Error in axis (line 57) 
if ~isempty(varargin) && allAxes(varargin{1}). 

Kann jemand mir helfen? FYI, meine Bildachsenbezeichnungen sind die Datenreihenfolge (von 0 bis N).

Meine gewünschten Ergebnisse ist ein Bild sieht aus wie eine Weltkarte, mit Raster/Rasterlinien wie die Achsen. Es sollte wie this betrachtet werden:

enter image description here

+1

Hallo. Sie müssen etwas informativer sein als _ "... Aber es hat nicht funktioniert" _. Können Sie ein Beispiel für das gewünschte Ergebnis liefern? –

+0

M_Map ist nützlich für diese Art von Sache: http://www.eos.ubc.ca/~rich/map.html – nkjt

Antwort

10

Aus Ihrer Frage schließe ich, dass Sie die X-Achsenbeschriftungen von -180 bis 180 und die Y-Achsenbeschriftungen von -90 bis festlegen möchten 90. Zu diesem Zweck sollten Sie die Eigenschaften XTickLabel und YTickLabel des Achsenobjekts ändern (beachten Sie, dass Sie auch die Anzahl der Ticks in jeder Achse anpassen müssen, indem Sie die Eigenschaften XTick und YTick entsprechend ändern).

Also, vorausgesetzt, dass Ihr Bild in der Matrix gespeichert data und Sie es mit imagesc(data) angezeigt wird, ist hier, wie die Strichbeschriftungen in der x-Achse zu ändern, von -180 bis zu 180:

xticklabels = -180:20:180; 
xticks = linspace(1, size(data, 2), numel(xticklabels)); 
set(gca, 'XTick', xticks, 'XTickLabel', xticklabels) 

in ähnlicher Weise ist hier, wie die Strichbeschriftungen in der y-Achse ändern, um von -90 bis 90:

yticklabels = -90:20:90; 
yticks = linspace(1, size(data, 1), numel(yticklabels)); 
set(gca, 'YTick', yticks, 'YTickLabel', flipud(yticklabels(:))) 

Dies ist, wie es aussehen soll:

enter image description here

+1

Es funktioniert, vielen Dank für Ihre Hilfe :) –

+0

Ich kann Ihren Vorschlag für alle Flips vertikal und/oder horizontal hier nicht reproduzieren http://stackoverflow.com/q/39923300/54964 –

2

Kann nicht sagen, dass ich voll und ganz verstehen, was Sie meinen, so hier geht. Um ein label zu einer Achse Verwendung xlabel und ylabel hinzufügen, zum Beispiel:

xlabel('time [sec]'); ylabel('Amplitude'); 

Um die Etiketten der Achse zu ändern Zecken, verwenden Sie so etwas wie:

plot(1:4) 
set(gca,'Xtick',1:4,'XTickLabel',{'a', 'b', 'c', 'd'}) 

mit imagesc Arbeiten Sie mögen Um diese Zeile hinzuzufügen:

dies wird Setze die Zahlen auf die Zecken, die für die untere linke Ecke wachsen ...

+0

Ich habe dein Skript ausprobiert, aber das Ergebnis sieht nicht wie mein gewünschtes Ergebnis aus (eine Weltkarte) –

+0

Es gibt sehr wenig, was ich tun kann, um diesen Kommentar zu beantworten. – bla

Verwandte Themen