将滑块添加到热图 - MATLAB
Adding slider to heatmap - MATLAB
我正在处理一个 3D 替身,我想逐个切片地对其进行可视化。
为此,我尝试绘制热图,然后将滑块添加到 select 三维索引。
但是,我收到以下错误:
Error using uislider (line XX) HeatmapChart cannot be a parent.
重现我的问题的最小示例:
% Generate dummy 3d array
img = ones(5,4,3);
for ii=1:size(img,3)
img(:,:,ii)=ii;
end
% Try plotting heatmap with slider
h = heatmap(img(:,:,1));
uislider(h)
实际上 way/workaround 在热图上使用滑块吗?
谢谢!
有。但我认为你不能为此使用 uislider。尝试:
h = heatmap(img(:,:,1));
uicontrol('Style','slider');
这个滑块具有类似的功能,但看起来不太好。您仍然可以定义 Min, Max, Color, ... 并实现回调函数。
最后它可能看起来像:
h = heatmap(img(:,:,1));
uicontrol('Style','slider','Value',1,'Min',1,'Max',size(img,3),...
'SliderStep',[0.5 0.5],'CallBack',{@SlideThroughSlices,img})
function SlideThroughSlices(slider,~,img)
heatmap(img(:,:,slider.Value));
end
假设img
第三维的大小为3,否则需要调整Min,Max和SliderStep
我正在处理一个 3D 替身,我想逐个切片地对其进行可视化。
为此,我尝试绘制热图,然后将滑块添加到 select 三维索引。
但是,我收到以下错误:
Error using uislider (line XX) HeatmapChart cannot be a parent.
重现我的问题的最小示例:
% Generate dummy 3d array
img = ones(5,4,3);
for ii=1:size(img,3)
img(:,:,ii)=ii;
end
% Try plotting heatmap with slider
h = heatmap(img(:,:,1));
uislider(h)
实际上 way/workaround 在热图上使用滑块吗? 谢谢!
有。但我认为你不能为此使用 uislider。尝试:
h = heatmap(img(:,:,1));
uicontrol('Style','slider');
这个滑块具有类似的功能,但看起来不太好。您仍然可以定义 Min, Max, Color, ... 并实现回调函数。
最后它可能看起来像:
h = heatmap(img(:,:,1));
uicontrol('Style','slider','Value',1,'Min',1,'Max',size(img,3),...
'SliderStep',[0.5 0.5],'CallBack',{@SlideThroughSlices,img})
function SlideThroughSlices(slider,~,img)
heatmap(img(:,:,slider.Value));
end
假设img
第三维的大小为3,否则需要调整Min,Max和SliderStep