如何添加传奇(或colorbar) volshow / labelvolshow输出?
34视图(30天)
显示旧的评论
嗨,有人能帮我添加一个小组由labelvolshow传奇吗?我设法添加标题,但我真的不知道如何把一个传奇(或者至少colorbar,即使我知道它不会是一样的)。任何形式的“传奇”是接受:我的意思是,不只是经典传奇的输出函数;还有一些字符串,用的颜色数据,可以很好. .任何方式分类输出是受欢迎的,重要的是,我想这是自动生成的代码,不需要与面板的交互。
这就是我如何添加一个标题:
view_panel = uipanel(图,“标题”,“Titolo”);
view_panel.FontSize = 14;
view_panel.TitlePosition =“centertop”;
labelvolshow (volume_labeled“父”,view_panel);
谢谢提前
0评论
接受的答案
沃斯
2022年5月25日
也许这样可以一个开始:
randi volume_labeled = (10 (5 5 5));
view_panel = uipanel(图,“标题”,“Titolo”);
view_panel.FontSize = 14;
view_panel.TitlePosition =“centertop”;
h = labelvolshow (volume_labeled,“父”,view_panel);
数控=大小(h.LabelColor, 1);
ax =轴(…
“父”view_panel,…
“单位”,“归一化”,…
“位置”(0.93 0 0.07 - 1),…
“可见”,“关闭”,…
“YLim”(10 0),…
“爬”(10 0),…
“Colormap”,h.LabelColor);
p =补丁(…
“父”ax,…
“XData”repmat ([0;1;1;0,1,NC),…
“YData”,(0,0,1,1)+ (0:NC-1),…
“FaceColor”,“平”,…
“FaceVertexCData”,ax.Colormap);
t =文本(ax, 0.5 * (NC)、(1:数控)-0.5,sprintfc (' % d '1:数控),…
“HorizontalAlignment”,“中心”);
t (1)。颜色= (1 1 1);
17日评论
西蒙白色短衣Ramusino
2022年5月25日
谢谢!有点贫穷和冗长的但这是迄今为止最好的结果,而且可能最好的。
你知道一种利用sprintfc(或直接文本)打印多行文本吗?我想是这样的:
“集群1 -
意思= 1公斤”
对于每个块colorbar /传奇。甚至在一个单一的线是好的,但我怕出来的边缘。
我试着sprintf但它复制所有行:
“Cluster1 -意味着= 10公斤Cluster2——意思= 17公斤集群3 - = 9公斤”
对于每个块。
再次感谢
沃斯
2022年5月25日
。_
randi volume_labeled = (10 (5 5 5));
view_panel = uipanel(图,“标题”,“Titolo”);
view_panel.FontSize = 14;
view_panel.TitlePosition =“centertop”;
h = labelvolshow (volume_labeled,“父”,view_panel);
数控=大小(h.LabelColor, 1);
ax =轴(…
“父”view_panel,…
“单位”,“归一化”,…
“位置”(0.85 0 0.15 - 1),…
“可见”,“关闭”,…
“YDir”,“反向”,…
“YLim”(10 0),…
“爬”(10 0),…
“Colormap”,h.LabelColor);
p =补丁(…
“父”ax,…
“XData”repmat ([0;1;1;0,1,NC),…
“YData”,(0,0,1,1)+ (0:NC-1),…
“FaceColor”,“平”,…
“FaceVertexCData”,ax.Colormap);
意味着=[10 17 9兰迪(20日NC-3)];
标签= arrayfun (@ (x, y) sprintf (“集群% d - \ nMean = % gkg ',x, y)…
1:数控,意思,“UniformOutput”、假);
t =文本(ax,(数控),-0.5(1:数控),标签,…
“HorizontalAlignment”,“对”);
t (1)。颜色= (1 1 1);
西蒙白色短衣Ramusino
2022年5月26日
还有一件事,如果我可以问:现在,我们已经创建了一个轴结构,我发现面板接收和显示了经典传奇盒子。但是如果我写点东西:
传奇(“Cluster1”,“Cluster2”,“Cluster3”)
正确显示只是第一个,有了正确的颜色,和出现这个警告:
警告:忽略额外的传说条目。
在传奇> > process_input(第592行)
在传说> make_legend(第319行)
在传奇(263行)
有办法显示经典传奇盒子,和我刚才说的行吗?我认为这将是整洁。
再次感谢你的努力。
沃尔特·罗伯森
2022年5月26日
你只有一个图形对象,一个补丁()。
您将需要创建额外的对象位置南或inf和任何你需要的属性。如果你想要样品的颜色,那么你需要创建图像()或()或表面贴片()对象为了得到传说显示片。
西蒙白色短衣Ramusino
2022年9月27日
对不起,我有另外一个疑问。让我们考虑多维数据集创建的示例
@Voss
。想象我有5、10或20集群:我想代表没有可视化最后集群(就我而言我确定它代表了背景)。所以,我LabelOpacity选项设置为一个向量,除了最后一个0。这是5簇,但当我切换到6个或更多,最后集群出现,不透明度的约0.5我认为(它不是完全不透明的)。
提示为了避免这种情况吗?我将尽快附加的数据
谢谢
西蒙白色短衣Ramusino
2022年9月27日
是的,你是对的,这是一个选择labelvolshow。我写这个:
h = labelvolshow (clustered_E,“父”view_panel,“写成BackgroundColor”,“c”,“LabelOpacity”LabelOpacity,“LabelVisibility”LabelVisibility,“ShowIntensityVolume”0,“VolumeOpacity”,0);
clustered_E标签卷,LabelOpacity标签的不透明度([1,1,1,……;0]),LabelVisibility标签的可见性(总是[1,1,1,……;0])和ShowIntensityVolume选项,如果我是正确的,显示原卷标记下一个。首先第一5(集群)LabelOpacity就足以,我以后添加其他选项作为6或多个集群的尝试,但没有成功。
西蒙白色短衣Ramusino
2022年9月28日
这是我使用的代码:
tuttiE = E (:);%的值列表分类
n_cluster = 6;%是我希望5集群
[clusterindex_E, centroids_E] = kmeans (tuttiE (n_cluster + 1),“麦克斯特”,500,“复制”5);%我添加一个集群,因为我不得不考虑bg,我故意设置为一个更大的值
clustered_E = sort_ind_cluster (clusterindex_E E (n_cluster + 1);%我的函数类型集群指数成正比它们包含的值
centroids_E = (centroids_E)进行排序;
%的可视化
LabelOpacity = 1 (n_cluster, 1);
LabelOpacity =猫(1 LabelOpacity 0);% = 0到删除最后一个元素的背景
LabelVisibility = 1 (n_cluster, 1);
LabelVisibility =逻辑(猫(1 LabelVisibility 0));
view_panel = uipanel(图,“标题”,”属性——“+ num2str (n_cluster) +“集群”);
view_panel.FontSize = 14;view_panel.TitlePosition =“centertop”;
h = labelvolshow (clustered_E,“父”view_panel,“写成BackgroundColor”,“c”,“LabelOpacity”LabelOpacity,“LabelVisibility”LabelVisibility,“ShowIntensityVolume”0,“VolumeOpacity”0,“VolumeThreshold”,0);
ax =轴(“父”view_panel,“单位”,“归一化”,“位置”(0.80 0 0.20 - 1),…
“可见”,“关闭”,“YLim”[0 n_cluster],“爬”[0 n_cluster],“Colormap”,h.LabelColor);
p =补丁(“父”ax,“XData”repmat ([0;1;1;0,1,n_cluster),…
“YData”,(0,0,1,1)+ (0:n_cluster),“FaceColor”,“平”,“FaceVertexCData”,ax.Colormap);
标签= arrayfun (@ (x, y) sprintf (“集群% d: \ n Centroide = % .2e ',x, y) 1: n_cluster,…
centroids_E (1: n_cluster) ',“UniformOutput”、假);
t =文本(ax, 0.5 * (1, n_cluster), -0.5 (1: n_cluster),标签,“HorizontalAlignment”,“中心”,…
“颜色”,“白色”,“字形大小”11“FontWeight”,“正常”);
正如我告诉,它应该工作即使没有LabelVisibility, ShowIntensityVolume, VolumeOpacity, VolumeThreshold(至少是5集群),但无论如何我离开他们。我将结果分别为6和5集群
沃尔特·罗伯森
2022年9月30日
看起来像我一样需要更多生殖的步骤
arrayfun (@do_label [5 10])
函数do_label (N)
无花果=图();
volume_labeled =兰迪(N [5 5 5]);
view_panel = uipanel(图,“标题”,“Titolo”);
view_panel.FontSize = 14;
view_panel.TitlePosition =“centertop”;
LabelOpacity = [1;0 (n - 1, - 1)];
LabelVisibility =逻辑(LabelOpacity);
h = labelvolshow (volume_labeled,“父”view_panel,“LabelOpacity”LabelOpacity,“LabelVisibility”,LabelVisibility);
数控=大小(h.LabelColor, 1);
ax =轴(…
“父”view_panel,…
“单位”,“归一化”,…
“位置”(0.85 0 0.15 - 1),…
“可见”,“关闭”,…
“YDir”,“反向”,…
“YLim”(10 0),…
“爬”(10 0),…
“Colormap”,h.LabelColor);
p =补丁(…
“父”ax,…
“XData”repmat ([0;1;1;0,1,NC),…
“YData”,(0,0,1,1)+ (0:NC-1),…
“FaceColor”,“平”,…
“FaceVertexCData”,ax.Colormap);
意味着=[10 17 9兰迪(20日NC-3)];
标签= arrayfun (@ (x, y) sprintf (“集群% d - \ nMean = % gkg ',x, y)…
1:数控,意思,“UniformOutput”、假);
t =文本(ax,(数控),-0.5(1:数控),标签,…
“HorizontalAlignment”,“对”);
t (1)。颜色= (1 1 1);
结束
沃尔特·罗伯森
2022年9月30日
k - means算法的问题是,它总是分配每一个点
一些
集群。举个例子,如果你有绿叶与树叶,色斑和蓝色的天空和你要求2集群,那么它会
不
给你一个绿色和一个集群的集群棕色的斑点,因为它必须分配蓝色的两个集群。
在6集群版本中,看起来我好像你的背景有作为的一个集群。
西蒙白色短衣Ramusino
2022年9月30日
我明白你的意思,但它不可能是这样的:首先,它不会有不同的(我想说的几乎50%)不透明度值,因为其他六个集群是100%不透明;你可以看到红色的bg不同于其他两个红色阴影部分。我也试图改变7日标签的颜色,只有bg的颜色(红色阴影块)已经改变了。
最后,我检查的值这7日集群,它只包含值(独特的价值,远远大于其他的)我指定的背景。所以这个问题必须在其他地方。
也许我会开一个新主题更好地谈论它
西蒙白色短衣Ramusino
2022年10月1日
将整个过程太麻烦。无论如何,如果你想尝试,你可以创建示例E数据如下:
E = 1 (5、5、3);
E (1::) = 100000;%定义bg(更高)
E (5::) = 100000;
E (: 1:) = 100000;
E (: 5:) = 100000;
E(2:4 2:4 1) =兰迪(100 3);%定义值要低得多
E(2:4 2:4 2) =兰迪(100 3);
E(2:4 2:4 3) =兰迪(100 3);
然后使用可视化代码我以前附加
tuttiE = E (:);
n_cluster = 6;%等等…
我试着用这个,我得到同样的问题你也可以试一试,如果你想要的。再次感谢
更多的答案(0)
一个错误发生
无法完成的行动,因为页面所做的更改。重新加载页面更新状态。
你也可以从下面的列表中选择一个网站
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。