Matlab 在clustergram中以编程方式启用colorbar
我知道可以通过单击Matlab 在clustergram中以编程方式启用colorbar,matlab,matlab-figure,Matlab,Matlab Figure,我知道可以通过单击clustergramGUI中的colorbar图标来插入colorbar。有没有一种方法可以通过编程实现? 我试过了 这将在新的图形窗口中创建一个颜色栏。如何在点击按钮的情况下在clustergram图中正确定位创建色条?有一个隐藏的函数(HeatMap.plot>showColorbar),它将色条整齐地定位在热图和密度图(线)的左侧。只要运行colorbar(…)就会弄乱密度图和热图的相对位置。因此,您需要以某种方式运行回调或小心地复制所有位置计算。只运行回调更容易。这是
clustergram
GUI中的colorbar图标来插入colorbar。有没有一种方法可以通过编程实现?
我试过了
这将在新的图形窗口中创建一个颜色栏。如何在点击按钮的情况下在
clustergram
图中正确定位创建色条?有一个隐藏的函数(HeatMap.plot>showColorbar
),它将色条整齐地定位在热图和密度图(线)的左侧。只要运行colorbar(…)
就会弄乱密度图和热图的相对位置。因此,您需要以某种方式运行回调或小心地复制所有位置计算。只运行回调更容易。这是怎么做的
要以编程方式为clustergram
创建colorbar
,并保持颜色栏按钮的同步,需要使用按钮分配的回调并设置按钮的状态
创建聚类图
:
load filteredyeastdata
cgo = clustergram(yeastvalues(1:30,:),'Standardize','Row');
获取颜色栏按钮的句柄:
cbButton = findall(gcf,'tag','HMInsertColorbar');
获取按钮的回调(单击回调
):
ccb = get(cbButton,'ClickedCallback')
ccb =
@insertColorbarCB
[1x1 clustergram]
这为我们提供了回调(@insertColorbarCB
)分配的函数句柄,以及函数的第三个输入参数(clustergram
对象)。按钮的句柄和空事件对象隐式地是前两个参数
将按钮状态更改为'on'
(单击向下):
运行回调以创建颜色栏:
ccb{1}(cbButton,[],ccb{2})
请注意,必须先将按钮状态更改为'on'
,否则回调将不起任何作用。我刚刚设法解决了这个问题。
我所做的:
我将此函数添加到clustergram代码中(我将其放在第1486行)
然后在clustergram.m文件的第415行,我添加了这行代码
插入式彩色遥控器(obj)
调用上述函数。保存并运行:一旦绘制了聚类图,颜色条将始终存在。
以前的方法对我不起作用,所以我做了这个变通方法。
您甚至可以将新的clustergram代码保存为ClusterGramM,这样您就可以用两种方式绘制cgram。颜色栏与您的计算机中的clustergram图相同code@lennon310这很奇怪,在我的两台运行64位2013b的电脑上,它显示在不同的图形窗口中…对我来说,它显示在同一个图形中,但无论指定了什么位置,它都会弄乱密度图和热图的位置。在HeatMap.plot>showColorbar
(toolbox/bioinfo/microarray/@HeatMap/plot.m)中有很多逻辑,只是为了得到正确的位置。
set(cbButton,'State','on')
ccb{1}(cbButton,[],ccb{2})
%%%%%%%%%%%%%%
function insertColorbarCBALWAYS(obj)
hFig= gcbf;
obj.Colorbar = true;
end
%%%%%%%%%%%%%%%