2014-01-21 103 views
0

我有下面的圖像,我想深度軸的範圍如下: (10 9.5 9 8.5 8 7.5 7 6 5 3 2 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0)來顯示深度1和0之間的數據在規模較大,並且我有以下代碼matlab中一個軸的縮放部分

depths = [10 5 1 0.5 0; 10 5 1 0.5 0] % these are the real depths in meter 
contourf(points,depths,RFU15102013_BloomAsMainPoint); 
set(gca, 'XTick', points(1) : points(2), 'XTickLabel',{ 'LSB1', 'LSB2'}); 
ylabel('Depth(m)'); 
xlabel('Points'); 
title('Date: 15.10.2013'); 

這是圖像: enter image description here

如何做呢?

EDIT1

真實數據:

RFU15102013_BloomAsMainPoint = [ 2.71 1.23 1.30 1.20 14.37 ; 2.51 1.36 1.01 1.24 1.15];

points = [1 1 1 1 1; 2 2 2 2 2 ];

depths = [10 5 1 0.5 0; 10 5 1 0.5 0];

+0

@divanov,你的意思是'contourf'輸入?? – Parid0kht

+0

@divanov,我剛剛添加了您要求的數據。 – Parid0kht

+0

我已經用您提供的數據更新了我的答案。 – divanov

回答

1

由於大部分數據在零附近變化,所以它可能足以改變Y軸的縮放比例。下面是一個例子

close all; clear all; 

z = [ 2.71 1.23 1.30 1.20 14.37 ; 2.51 1.36 1.01 1.24 1.15]; 
x = repmat([1; 2], 1, 5); 
y = repmat([10 5 1 0.5 0], 2, 1); 

% plotting with equally spaced y-s 
h = subplot(1,2,1); 
contourf(x,y,z); 

y2 = log(y + 0.25); 
yTicks = linspace(min(y2(1,:)), max(y2(1,:)), 10); 

% plotting with logarithmically spaced y-s 
h = subplot(1,2,2) 
contourf(x,y2,z); 
set(h,'YTick', yTicks) 
set(h,'YTickLabel', exp(yTicks) - 0.25); 

print('-dpng','scaling.png') 

結果 contour plot

這種方式可以應用於軸縮放任何單調連續函數。

+0

謝謝,我用它..但它不會顯示我的數據...這個數字是白色的! – Parid0kht

+0

不..不說什麼! – Parid0kht

+1

非常感謝您的關注:) – Parid0kht

0

你可以使用UIMAGE - UIMAGESC MathWorks的文件交換,並設置y值來強調1到0範圍內的點。

+0

謝謝..但我認爲'BreakPlot'功能更好..但它給了我錯誤。 – Parid0kht