使用非常简单的语法,patchline允许您将行视为补丁。这允许您设置Patch对象的任何有效属性,包括'edgealpha'(修改行的透明度)。
请注意,设置透明度(Edgealpha)的有效性可能在不同的操作系统上不同。尝试不同的数字渲染器(特别是OpenGL)以获得所需的行为。
此外,如果渲染器未设置为“OpenGL软件”,UNIX用户可能会遇到问题。此参数无法在运行时设置,但可以在startup.m中设置。
如果要创建透明行或透明绘图,则Patchline非常有用。
Brett Shoelson(2021年)。补丁(//www.tatmou.com/matlabcentral/fileexchange/36953-patchline),matlab中央文件兑换。检索到。
@geemoney:你是正确的 - 谢谢你。我会修复它并立即发布新版本。
布雷特
工作很大,但第113行需要一个编辑以处理只有两个参数时处理
如果〜isempty(varargin)&& isnumeric(varargin {1})
@basila:你提交的问题是有没有找到过问题的?一个没有文字的1星的评分只是让我困惑。布雷特
@莎拉:
请注意,修补程序函数的帮助明确状态:
笔记:
请注意,我们在这里绘制0厚度补丁,
仅由他们的边缘代表。面部属性将是
没有明显影响这些物体!(修改
边缘的属性。)
所以...修改你的代码来指定Edgealpha,而不是Facealpha属性!
谢谢,
布雷特
这可以与CDFPLOT一起使用吗?我有以下代码:
数字
坚持,稍等
[F1,X1] = ECDF(ClusterAllnormalizedGremAtded);
CDFPLOT(ClusterAllnormalizedGrobatted);
CDFPLOT(ClusterAllnormalizedyounGFormatted);
H1 = CDFPLOT(ClusterAllnormalizedGremAtded);
H2 = CDFPLOT(ClusterAllNormalizedyounGFormatted);
patchline(x1,f1,'facealpha',0.2)
设置(H1,'颜色','r');
设置(H2,'颜色','b');
XLabel('致正化距离到最近邻(μm)','fontname','times','fontsize',16)
ylabel('频率','fontname','times','fontsize',16)
标题('所有脊椎聚类 - PFC','fontname','times','fontweight','normal','fontsize',16)
XLIM([0 4])
传说([H2 H1],{Young','aged'},'fontsize',14,'fontname','times')
网格
hold
我正在尝试改变线条的透明度,但是当我运行这个代码时,它就会使“老化”行黑色。
如果我运行此代码,我完全得到了我想要的,除了线条不是透明的。试图弄清楚如何使用CDFPLOT进行透明度。
数字
坚持,稍等
CDFPLOT(ClusterAllnormalizedGrobatted);
CDFPLOT(ClusterAllnormalizedyounGFormatted);
H1 = CDFPLOT(ClusterAllnormalizedGremAtded);
H2 = CDFPLOT(ClusterAllNormalizedyounGFormatted);
设置(H1,'颜色','r');
设置(H2,'颜色','b');
XLabel('致正化距离到最近邻(μm)','fontname','times','fontsize',16)
ylabel('频率','fontname','times','fontsize',16)
标题('所有脊椎聚类 - PFC','fontname','times','fontweight','normal','fontsize',16)
XLIM([0 4])
传说([H2 H1],{Young','aged'},'fontsize',14,'fontname','times')
网格
hold
非常好的工作!
嗨Kouichi,
谢谢你分享这个。是的,yair的提示非常有用。唯一的注意事项:您在使用未安全的MATLAB时会产生风险,因为功能恰好在将来的释放中突破。
所以是的,使用线颜色的4元元规范。但在后面的口袋中将记录的方法保留在后面的口袋里。;)
布雷特
对不起,我这么晚才发现这个,但这很棒。我想多年来一直这样做,只有现在刚刚被搜查看某人是否已经完成了它。只是辉煌!
当您需要半透明线时,这将是这样做的。
这非常有用。
要使它能够处理Y值(列 - WISE)的矩阵,我发出了以下更改,您可能希望合并:
在第97行(“%FaceColor ='k'之后添加(基本上)被忽略”......)
%使X-向量与Y矩阵相同的大小(假设数据处于列中)
如果大小(ys,2)> 1 && size(xs,2)== 1
xs = repmat(xs,1,尺寸(ys,2));
结尾
%将nans添加到底行(因此它不绘制一个区域?)
xs = [xs;nan(1,尺寸(xs,2))];
ys = [ys;NaN(1,尺寸(ys,2))];
%绘制“补丁”(实际上是线)
如果是isempty(zs)
p = patch(xs,ys,'w');
别的
p =补丁(xs,ys,zs,'w');
结尾
以上更换:
%如果是isempty(zs)
%p = patch([xs(:); nan],[ys(:); nan],'k');
% 别的
%p =贴片([xs(:); naN],[ys(:); nan],[zs(:); nan],'k');
% 结尾