2011-03-03 64 views
1

喂SOers: 搜索一段時間後,答案依然沒有露面,我的問題:
我有這樣一個數據文件:Matlab的:3D條形圖在指定軸

x y  z 
10 100 30 
10 500 90 
10 600 200 
30 200 30 
90 120 300 
90 130 30 
90 200 60 

在MATLAB中,我想繪製z(x,y),它們不是連續的點。情節點應該是一個酒吧。 但是plot3()似乎不支持三維條形圖,
和bar3()似乎不允許我指定我的(x,y)列。

那麼如何獲得這樣的稀疏條形圖?

非常感謝!

回答

3

您可以將值放入矩陣中,其中每個元素表示一個條。您將您的元素設置爲一個值,並將所有其他元素設置爲零。

>> x = x./10 %I scaled the x and y values down by factor of 10 


x = 

    1  1  1  3  9  9  9 

>> y = y./10 

y = 

    10 50 60 20 12 13 20 


>> A = zeros(max(x),max(y));  %create Matrix of size 9x20 
>> for i = 1:length(x) 
A(x(i),y(i)) = z(i);    %populate the Matrix 
end 
>> bar3(A) 
>> 

我相信你可以通過改變一些參數來使情節更好,但這將是輸出。

This would be the output.

+0

太棒了!但是x-y平面上的顏色真的讓人分心。如果它僅基於酒吧的高度而着色,那將是很好的。 – lukmac

+0

你可以改變:http://www.mathworks.com/help/techdoc/creating_plots/f10-19972.html#f10-22737 – Lucas

+0

但問題是我的數據大多位於一些大的價值附近,如果我把它們分開或者減去它們的偏移量,然後在圖中我看不到原始值。 Matlab是否足夠聰明來處理這個問題? – lukmac