二次元プロットのxの変域の着色

5 vues (au cours des 30 derniers jours)
rika yamada
rika yamada le 25 Déc 2019
xの変域に対して着色したいのですが、
area 関数を用いると以下のようになり、yの変域にしか着色できません。
例えばの範囲に着色したい場合はどのようにすればよいでしょうか。
clear
close all
% Sample data
y = 0.0:0.01:10.0;
y = y';
x1 = 0.*y + 7.0;
x2 = 0.*y + 4.0;
figure
ar = area(y,[x2,x1]);
% Appearances
set(ar(1),'FaceColor','None')
set(ar(2),'FaceColor',[0.0,0.2,1.0],'FaceAlpha',0.2);
grid on

Réponse acceptée

Musashi Ito
Musashi Ito le 25 Déc 2019
Modifié(e) : Musashi Ito le 25 Déc 2019
2 次元の多角形の塗りつぶしの関数 fill が使えそうです。これで塗りつぶして、グラフを重ね書きしてみてはいかがでしょうか。
% 正弦波の計算
x = 0:0.1:2*pi;
y = sin(x);
% グラフの作成
figure
% 2次元の多角形の塗りつぶし
% x 軸が 1 <= x <= 5, y 軸が -1 <= y <= 1 の長方形
% RGB : [0.1 0.5 0.1] で塗りつぶし
fp = fill([1 1 5 5],[-1 1 1 -1],[0.1 0.5 0.1]);
fp.EdgeColor = [0.1 0.5 0.1]; % エッジの色を RGB で指定
fp.FaceAlpha = 0.5; % 透明度を 0~1 で指定
hold on
plot(x,y) % 正弦波のグラフをプロット
hold off
grid on
xlim([0 6]) % グラフのx 軸座標の調整
ylim([-1 1]) % グラフのy 軸座標の調整

Plus de réponses (1)

Etsuo Maeda
Etsuo Maeda le 26 Déc 2019
areaでも横軸0~10の範囲で着色されているはずですが・・・?
y = 0.0:0.01:5.0;
としてためしてみてはどうでしょうか。

Catégories

En savoir plus sur グラフィックス出力のターゲットの指定 dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!