2013-02-25 20 views
5

Próbuję zmienić etykiety osi obrazu z pewną szerokością/długością geograficzną, ale nie mogę znaleźć sposobu, aby to zrobić. I próbuje podstawowe polecenia, takie jak:Jak zmienić etykiety osi obrazu

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

ale to wyrażenie pojawił:

imagesc (dane), oś (meshgrid - [(180: 20: 180], [- 90:20:90 ])), colorbar Operandy do || i & & operatorów muszą być wymienialne na wartości logiczne skalarne .

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

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

Czy ktoś może mi pomóc? FYI, moje etykiety osi obrazu to kolejność danych (od 0 do N).

Moje pożądane wyniki to obraz przypominający mapę świata, z liniami siatki/siatki jako osiami. Należy wyglądało this:

enter image description here

+1

Witam. Musisz być trochę bardziej informatywny niż _ "... Ale to nie zadziałało" _. Czy możesz podać przykład pożądanego rezultatu? –

+0

M_Map jest przydatna w tego rodzaju sprawach: http://www.eos.ubc.ca/~rich/map.html – nkjt

Odpowiedz

10

Z Twojego pytania wynika, że ​​chcesz ustawić etykiety osi X od -180 do 180, a etykiety osi Y od -90 do 90. W tym celu należy zmienić właściwości obiektu osi (pamiętaj, że musisz również dostosować liczbę znaczników w każdej osi, modyfikując odpowiednio właściwości XTick i YTick).

Zakładając więc, że obraz jest przechowywany w macierzy data i wyświetlać je imagesc(data), oto jak zmienić etykiety zaznaczyć w osi x będzie od -180 do 180:

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

Podobnie, oto jak zmienić etykiety zaznaczyć w osi y się od -90 do 90:

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

to właśnie ona powinna wyglądać następująco:

enter image description here

+1

To działa, bardzo dziękuję za pomoc :) –

+0

Nie mogę odtworzyć Twojej propozycji wszystkich zwrotów pionowych i/lub poziomych tutaj http://stackoverflow.com/q/39923300/54964 –

2

Nie można powiedzieć, że w pełni zrozumieć, co to znaczy, więc tutaj idzie. Aby dodać label do użytku osi xlabel i ylabel, na przykład:

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

aby zmienić etykiety osi kleszcze, użyć czegoś takiego:

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

Praca z imagesc może chcesz Aby dodać tę linię:

set(gca, 'YDir', 'reverse'); 

to będzie ustaw numery na zakładce rosnącej w lewym dolnym rogu ...

+0

Próbowałem twojego skryptu, ale wynik nie wygląda na mój pożądany wynik (mapa worl). –

+0

Niewiele mogę zrobić, aby odpowiedzieć na ten komentarz. – bla

Powiązane problemy