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