web-dev-qa-db-ja.com

プロットの不透明度を設定するにはどうすればよいですか?

1つの図にプロットするデータがいくつかあります。ノイズデータは他のデータを台無しにしています。特定のデータの透明度レベルを変更するにはどうすればよいですか?私の場合、いくつかのデータをプロットするために_hold all_コマンドを使用しています。解決策の1つは、LineWidthを変更することですが、透明度オプションの方法が見つかりませんでした。私は次のようにalphaを試しました

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

しかし、運がありません。

9
CroCo

新しいグラフィックエンジンHG2 inMatlab R2014b、物事はかなり簡単になりました。少し掘る必要があります。

Colorプロパティには、不透明度/透明度/面アルファの4番目の値が含まれるようになったため、変更する必要があるのはこれだけです。

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

色のグラデーションでさえ もう特別なことは何もありません

13
thewaywewalk

File Exchangeからの patchline 送信を使用できます。この場合、ラインオブジェクトをパッチオブジェクトであるかのように操作できます。つまり、透明度(アルファ)値を割り当てます。

関数を使用したサンプルコードを次に示します。

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

2
Benoit_11