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

6 ビュー (過去 30 日間)
rika yamada
rika yamada 2019 年 12 月 25 日
回答済み: Etsuo Maeda 2019 年 12 月 26 日
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

採用された回答

Musashi Ito
Musashi Ito 2019 年 12 月 25 日
編集済み: Musashi Ito 2019 年 12 月 25 日
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 軸座標の調整

その他の回答 (1 件)

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

カテゴリ

Help Center および File Exchange2 次元および 3 次元プロット についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!