簡體   English   中英

如何更改bar3(MATLAB)中的顏色表示以表示來自另一個變量的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM