Plot teduh di Matlab
Saya ingin memplot fungsi di Matlab dengan area yang diarsir yang menunjukkan ketidakpastian di atasnya (misalnya, interval kepercayaan). Ini dapat dicapai dengan menggunakan fillfungsi untuk membuat tambalan warna. Sebagai contoh
x = linspace(0, 2*pi, 100);
f = cos(x);
fUp = cos(x) + 1;
fLow = cos(x) - 1;
x2 = [x, fliplr(x)];
plot(x, f, 'k')
hold on
fill(x2, [f, fliplr(fUp)], 0.7 * ones(1, 3), 'linestyle', 'none', 'facealpha', 0.4);
fill(x2, [fLow, fliplr(f)], 0.7 * ones(1, 3), 'linestyle', 'none', 'facealpha', 0.4);
Ini menciptakan area abu-abu berbayang antara fungsi fLowdan fUp, dengan fdi tengah direpresentasikan sebagai garis hitam pekat, seperti pada gambar di bawah ini.
Sekarang saya ingin agar area yang diarsir menurunkan warnanya saat kita mendekati batas bawah (resp. Atas) dari interval kepercayaan. Secara khusus, saya ingin saat mendekati batasnya, area yang diarsir menjadi lebih cerah dan lebih cerah. Apakah ada cara untuk melakukannya? Saya melakukan dua tambalan terpisah karena menurut saya itu mungkin perlu untuk tujuan saya.
Jawaban
Anda dapat membagi CI Anda menjadi nsubarea:
x = linspace(0, 2*pi, 100);
f = cos(x);
n = 20; % step number
g = 0.3; % grayscale intensity
fUp = cos(x) + linspace(0,1,n).';
fLow = cos(x) - linspace(0,1,n).';
x2 = [x, fliplr(x)];
plot(x, f, 'k')
hold on
fill(x2, [repmat(f,n,1), fliplr(fUp)], g * ones(1, 3), 'linestyle', 'none', 'facealpha', [1/n]);
fill(x2, [fLow, repmat(fliplr(f),n,1)], g * ones(1, 3), 'linestyle', 'none', 'facealpha', [1/n]);
Yang menghasilkan:
Subarea tersebut tumpang tindih dan menghasilkan facealpha maksimal n*(1/n) * g = g
Perhatikan bahwa metode ini tidak benar-benar hemat memori (karena menghasilkan nsubarea di setiap sisi) dan hanya akan bekerja dengan bayangan linier.
Jika CI Anda non linier maka Anda harus menyesuaikan bagian ini:
% Prediction Linear CI
% ↓ ↓
cos(x) + linspace(0,1,n).';
cos(x) - linspace(0,1,n).';
untuk
% Prediction Non linear CI
% ↓ ↓
cos(x) + your_non_linear_CI_distribution;
cos(x) - your_non_linear_CI_distribution;