[英]How to change color representation in bar3 (MATLAB) to represent data from another variable?
我有32x32
矩陣LagsX
,其中包含要使用bar3
在3d中bar3
。 我希望能夠更改條形的顏色,以表示另一個名為CrossCorrX
32x32
矩陣中的數據。 這樣我實際上代表了4D數據。
我嘗試訪問ZData
,這是通過用bar3(LagsX)
繪制並替換來自bar3(CrossCorX)
的ZData
獲得的。 但我收到以下錯誤:
無效或已刪除的對象。
這是我嘗試使用的代碼:
b1 = bar3(crossCorrX); colorbar
b = bar3(lagsX);
for k = 1:length(b)
b(k).CData = b1(k).ZData;
b(k).FaceColor = 'interp';
end
我在b(k).CData = b1(k).ZData;
行中收到錯誤b(k).CData = b1(k).ZData;
。
您有建議怎么做嗎? 為什么會出現錯誤? 使用bar3
以外的其他功能的建議也將不勝感激。
我正在使用MATLAB R2015a。
編輯
我已經了解了我的問題,只需要添加數字即可; 再次。 我的新問題是,無論LagsX == 0哪里,代表CrossCorX的顏色都會顯示為零,即使它是不同的。 關於如何克服這個問題的任何提示?
謝謝你!
我認為發生錯誤是因為您正在用第二個覆蓋第一個圖,因此無法再訪問其ZData
屬性。
為了克服這個問題,您只需為每個bar3
圖分配一個圖形即可。
隨機數據示例:
clear
clc
close all
A = rand(10,10);
A2 = rand(10,10);
figure(1)
b1= bar3(A);
figure(2)
b = bar3(A2);
hcb = colorbar;
for k = 1:length(b)
b(k).CData = b1(k).ZData;
b(k).FaceColor = 'interp';
end
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.