如何设置绘图的不透明度?

时间:2015-08-17 18:10:59

标签: matlab plot colors transparency matlab-figure

我有一些数据要绘制在一个图中。噪声数据正在破坏其他数据。如何更改给定数据的透明度级别?就我而言,我正在使用hold all命令来绘制几个数据。其中一个解决方案是更改LineWidth,但我找不到透明选项的方法。我已尝试alpha如下

plot( noise_x, 'k', 'LineWidth', 1, 'alpha', 0.2)

但没有运气。

2 个答案:

答案 0 :(得分:15)

使用 Matlab R2014b 中的introduction of the new graphic engine HG2,事情变得非常简单。一个人只需要挖一点。

color属性现在包含opacity / transparency / face-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;

enter image description here

甚至颜色渐变都是nothing special anymore

答案 1 :(得分:2)

您可以使用文件交换中的patchline提交,您可以在其中操作线对象,就像它们是补丁对象一样;即为它们指定透明度(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

并输出:

enter image description here