Matlab 如何设置绘图的不透明度?
我有一些数据要绘制在一个图形中。噪音数据正在破坏其他数据。如何更改给定数据的透明度级别?在我的例子中,我使用Matlab 如何设置绘图的不透明度?,matlab,plot,colors,transparency,matlab-figure,Matlab,Plot,Colors,Transparency,Matlab Figure,我有一些数据要绘制在一个图形中。噪音数据正在破坏其他数据。如何更改给定数据的透明度级别?在我的例子中,我使用holdall命令来绘制多个数据。解决方案之一是更改线宽,但我找不到透明度选项的方法。我尝试了alpha如下 绘图(噪声x,'k','LineWidth',1,'alpha',0.2) 但是没有运气 您可以使用来自文件交换的提交,在文件交换中,您可以像处理面片对象一样处理线对象;i、 e.为其指定透明度(alpha)值 下面是使用该函数的一些示例代码: clc;clear;close al
holdall
命令来绘制多个数据。解决方案之一是更改线宽
,但我找不到透明度选项的方法。我尝试了alpha
如下
绘图(噪声x,'k','LineWidth',1,'alpha',0.2)
但是没有运气 您可以使用来自文件交换的提交,在文件交换中,您可以像处理面片对象一样处理线对象;i、 e.为其指定透明度(alpha)值
下面是使用该函数的一些示例代码:
clc;clear;close all
n = 10;
x = 1:n;
y1 = rand(1,n);
y2 = rand(1,n);
y3 = rand(1,n);
Y = [y1;y2;y3];
linestyles = {'-';'-';'--'};
colors = {'r';'k';'b'};
alphavalues = [.2 .5 .8];
hold on
for k = 1:3
patchline(x,Y(k,:),'linestyle',linestyles{k},'edgecolor',colors{k},'linewidth',4,'edgealpha',alphavalues(k))
end
和输出:
在Matlab R2014b中,事情变得非常简单。一个人只需要挖一点
“颜色”属性现在包含“不透明度/透明度/面alpha”的第四个值,因此您只需更改以下内容:
x = linspace(-10,10,100); y = x.^2;
p1 = plot(x,y,'LineWidth',5); hold on
p2 = plot(x,-y+y(1),'LineWidth',5);
% // forth value sets opacity
p1.Color(4) = 0.5;
p2.Color(4) = 0.5;
甚至颜色渐变也是如此。这不会自动填充x轴值。在我的例子中,我只有y值。这个函数抛出一个错误。@CroCo
x
只是x=1:numel(y)
,不是吗?这个代码与我的案例类似x=0:0.01:pi;配线(sin(x))
。这抛出了一个错误索引超过了矩阵维数。
如果我使用plot(sin(x))
,则没有错误。你能将复制错误的整个代码发布为你的问题的编辑吗?@Benoit_11,我已经在你上面的评论中发布了它。基本上,plot
在不显式提供x轴值的情况下完成该工作。配线的情况并非如此。有什么方法可以克服这个问题吗?我有MatlabR2014A。@CroCo那真是个废物。然后你需要去寻找答案,或者,如果你不想使用外部功能,请点击我的链接。很好,我不知道第四种颜色的属性,谢谢@这是一个奇妙的答案!!您是否可以在其他3种颜色属性上添加一些注释?您的意思是颜色(1:3)
?这些只是matlab使用的标准化rgb值。