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

5 次查看(过去 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 CenterFile Exchange 中查找有关 グラフィックス出力のターゲットの指定 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!