我怎么能使情节透明gscattter ?
107(30天)
显示旧的评论
接受的答案
亚当Danz
2020年8月4日
编辑:亚当Danz
2020年8月27日
设置透明度的标记
gscatter
r2020a是不可能的。
解决方法
你可以
使用
散射()
是否支持透明度。万博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
。
答案(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