系统树图与自定义着色

99(30天)
卡
2017年2月14日
编辑: T0m07约5小时前
嗨,我是准备在MATLAB系统树图。我可以设置颜色阈值如下:
> >图()
H =系统树图(树,0,“ColorThreshold”1);
集(H,“线宽”,1.5)
这给下面的输出:
我有两个问题关于上图:
1)我怎么能只有MATLAB颜色最大的集群低于我的阈值(这是一个红色)
2)如何指定颜色
提前谢谢。

接受的答案

亚当
亚当 2017年2月14日
如果你使用
线=系统树图()
语法你会得到一个处理数组作为输出。这将处理行创建。这些可以单独颜色和任何你想要的颜色。我想指定的行命令是leafOrder虽然我没有检查。
X =兰德(10,3);
树=连杆(X,“平均”);
D = pdist (X);
leafOrder = optimalleaforder(树,D);
图()
h =系统树图(树,“重新排序”,leafOrder);
h (1)。颜色=“r”;
h (8)。颜色= (0.5 0 0);
3评论
卡
2017年2月14日
排序,谢谢。

登录置评。

答案(1)

micholeodon
micholeodon 2021年4月14日
编辑:micholeodon 2021年4月14日
这是你如何从你的系统树图得到颜色和链接它与观察。
通过改变颜色的属性下面的行存储在h变量可以改变颜色在你的系统树图。
清晰;关闭所有;clc;
% %生成示例数据
rng (“默认”)%的再现性
N = 10;%的观察
X =兰德(N, 3);
% %获得联系
树=连杆(X,“平均”);
% %获得所需数量的集群
nClusters = 2;
截止=值([树(end-nClusters + 1, 3)树(end-nClusters + 2, 3)));
% %画树
h =系统树图(树,“ColorThreshold”,截止);% h包含线对象
% %选取颜色
linesColor = cell2mat (get (h,“颜色”));%得到线颜色;
colorList =独特(linesColor,“行”);
%注意,每一行一行对应的同一行树
%变量。我使用下面的这个性质。
X_color = 0 (N, 3);
X_cluster = 0 (N, 1);
iLeaf = 1: N
[iRow ~] =找到(树= = iLeaf);
颜色= linesColor (iRow:);% !
%的颜色分配给每一个观察
X_color (iLeaf:) =颜色;
%将集群数量分配给每一个观察
X_cluster (iLeaf:) =找到(ismember (colorList,颜色,“行”));
结束
% %改变线的颜色
h (5)。颜色= [0 1 0]
2的评论
T0m07
T0m07 14分钟前
编辑:T0m07 7分钟前
我不认为这是如果你有30多个数据点,此后你比叶子,有更多的数据点在for循环和代码错误。
为您的代码工作,您需要提供N作为一个额外的输入系统树图()定义的叶节点的最大数量。

登录置评。

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!