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值。