我怎么能使情节透明gscattter ?

107(30天)
我有一个巨大的数据分组并显示在一个阴谋gscatter的帮助。为了使它更可见我想把每个点的透明度。但MakeFaceAlpha等功能不工作。

接受的答案

亚当Danz
亚当Danz 2020年8月4日
编辑:亚当Danz 2020年8月27日
设置透明度的标记 gscatter r2020a是不可能的。
更新 :看 实验后的方法设置gscatter标记的透明度 使用无证功能。
解决方法
你可以 使用 散射() 是否支持透明度。万博1manbetx这是翻译的一种方法 gscatter 语法 散射 语法的使用 arrayfun
% gscatter语法
gscatter (x, y, g)
%散射语法
班()
持有%重要
uniqueGroups =独特(集团);
h = arrayfun (@ (g)散射(x (= = g组),y (= = g组),“填充”),uniqueGroups);
集(h,“MarkerFaceAlpha”,0.6)%设置透明度级别
%散射语法指定颜色,标记,和大小
颜色=rb的;
标记=“v ^”;
uniqueGroups =独特(集团);
班()
持有%重要
h = arrayfun (@ (g)散射(x (= = g组),y (= = g组),
100年,颜色(g),“填充”,“标记”标记(g)), uniqueGroups);
集(h,“MarkerFaceAlpha”,0.4,“MarkerEdgeColor”,“k”,“MarkerEdgeAlpha”2)%设置透明度级别
或者,你可以 使用 gscatter 没有了标记
h = gscatter (x, y, g,颜色,“操作系统”10);
集(h,“线宽”,1)
为什么的透明度 gscatter 不工作
散射 函数创建 分散对象 。分散对象有 MarkerFaceAlpha MarkerEdgeAlpha 属性允许您设置透明度水平。
gscatter 函数创建 行对象 。行对象没有这些属性。此外,一个非法的方法添加transparancy一些图形对象通过添加四元素(0:1)RGB颜色定义不工作 gscatter
2的评论
梅尔
梅尔 2020年8月5日
非常感谢!这可以帮助很多

登录置评。

答案(1)

实验后奥特曼
实验后奥特曼 2020年8月27日
编辑:实验后奥特曼 2022年10月5日
亚当巧妙回答,但不完全准确的如果你愿意使用一些非法的特性……
底层对象 gscatter 是简单的 对象的标记的确可以是透明的: http://undocumentedmatlab.com/articles/plot-markers-transparency-and-color-gradient
关键是要意识到只有标记的脸可以做成透明的,没有标记的边缘。默认情况下, gscatter 使用空标记的脸和非空的边缘。的标志;我们可以改变这一个“o”标记没有边缘和一个非空的脸。
这里有一个简单的用法示例:
负载carsmall
h = gscatter(排量、马力、Model_Year);
集(h (1),“标记”,“o”,“MarkerSize”5,“MarkerEdgeColor”,“没有”,“MarkerFaceColor”,“r”);
drawnow
集(h (1) .MarkerHandle,“FaceColorType”,“truecoloralpha”,“FaceColorData”uint8 ([200, 0, 0; 50]));
%……和similarly for the other handles h(2),h(3),...
drawnow
7评论
Gernot Reichl
Gernot Reichl 2022年11月16日在41
编辑:Gernot Reichl 2022年11月16日在41
@Yair奥特曼 非常感谢你的答案,你的伟大的工作!

登录置评。

类别

找到更多的在图形性能帮助中心文件交换

社区寻宝

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

开始狩猎!