電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 11|回復(fù): 0
收起左側(cè)

【高級繪圖】Matlab繪制陰影誤差圖

[復(fù)制鏈接]

238

主題

238

帖子

1400

積分

三級會員

Rank: 3Rank: 3

積分
1400
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-10-24 00:15:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
點擊上方藍(lán)字和“好玩的matlab”一起快樂的玩耍吧* u9 y* Q% k# G5 K+ u  c
( c  N0 O4 x6 [& |( d( z
好玩的matlab
$ F$ Y- g; p; ?4 I帶你喜歡上MATLAB
8 q0 N( H& j: O9 B) i
0 G4 Y7 \% o6 K: S, Q( D科研繪圖中遇見的問題:怎么樣去繪制好看精致的誤差圖?今天小編教大家畫圖的方法。繪圖效果
+ v5 X4 [" Z3 F+ e; P
1+ i% i; H) w! a# X

5 c, y) [$ W( F( l+ L6 |
9 z. O" I. Z, I. X# K, q

3 f! _" W8 M7 r' U3 z " p, m( J5 E3 n9 n1 P+ J
源碼2
  • clear,clc;x = 0:10:500; y_true =  30*sind(x) + x/10; sigma = 3; y_measured = y_true + sigma*randn(size(x)); plot(x,y_true,'k','linewidth',2)hold onplot(x,y_measured,'color',[0.0118 0.2078 0])ylabel( 'Y軸');xlabel('X軸');% 繪制不確定性陰影區(qū)間errorshade(x,y_measured,sigma,[0 1 0.7]) legend('真實值','測量值 \pm\sigma = 3 mV ','location','northwest')legend box off axis tight title('好看的陰影誤差圖')grid minor?errorshade 函數(shù):) j8 B) Q9 L  A4 l" r
  • function h = errorshade(x,y,sigma,color,varargin)%errorshade繪制陰影區(qū)域以指示高斯不確定性。%通過生成指定顏色的RGB圖像并設(shè)置透明度來作圖%% 語法規(guī)則%  errorshade(x,y,sigma,color)%  errorshade(...,'resolution',res)%  errorshade(...,'average',N)%  h = errorshade(...)%%% 簡介%% %errorshade(x,y,sigma ,color)以高斯陰影區(qū)域為中心繪制% x,y:為數(shù)據(jù)行。%sigma:表示陰影的一個標(biāo)準(zhǔn)偏差% color:為rgb值的三元素向量。
    9 H. x/ X5 K* E5 l9 ]%% 舉例%數(shù)據(jù)% x = 0:10:500;% y_true =  30*sind(x) + x/10;% sigma = 3;% y_measured = y_true + sigma*randn(size(x));% plot(x,y_true,'k','linewidth',2)% hold on% plot(x,y_measured,'color',[0.0118 0.2078 0])% ylabel 'some values in mV'%% % 繪制不確定性陰影區(qū)間% errorshade(x,y_measured,sigma,[0.0824 0.6902 0.1020])% legend('true value','measured value \pm\sigma = 3 mV uncertainty','location','northwest')% legend boxoff% axis tight%% Error checks:narginchk(4,inf)assert(numel(color)==3,'輸入錯誤: 顏色必須是三元素向量.')assert(numel(x)==numel(y),'輸入錯誤::x 和 y 維度必須相等')assert(isscalar(sigma)==1,'輸入錯誤: sigma必須是標(biāo)量.'). N% j3 H9 [5 `' r8 |
    %% Input parsing# o1 ^6 p; l1 f0 P
    tmp = strncmpi(varargin,'resolution',3);if any(tmp)    res = varargin{find(tmp)+1};    if isscalar(res)        res = [res res];    else        assert(numel(res)==2,'輸入錯誤: 分辨率必須是標(biāo)量或二元素向量.')    endelse    res = 2500*[1 1];endtmp = strncmpi(varargin,'average',2);if any(tmp)    avg = varargin{find(tmp)+1};    assert(isscalar(avg)==1,'輸入錯誤: 移動平均距離必須為標(biāo)量.')    y = imfilter(y(:),fspecial('average',[avg 1]),'replicate');endbuffer = 3*sigma; % This is the padding to add around all measurements in the vertical dimension.%% 限制范圍:% 制作一個與數(shù)據(jù)緩沖區(qū)的尺寸相對應(yīng)的網(wǎng)格:[X,Y] = meshgrid(linspace(min(x),max(x),res(1)),linspace(min(y)-buffer,max(y)+buffer,res(2)));% Find y locations along all x points of the gridyi = interp1(x,y,linspace(min(x),max(x),res(1)));% 正態(tài)分布:P = (1/sqrt(2*pi*sigma^2)) * exp(-(bsxfun(@minus,Y,yi)).^2/(2*sigma^2));%每個點到y(tǒng)i的距離將用作透明度的量度:Z = P-min(P(:));Z = Z/max(Z(:));%創(chuàng)建指定顏色的RGB圖像:RGB = cat(3,color(1)*ones(size(Z)),color(2)*ones(size(Z)),color(3)*ones(size(Z)));% 繪制顏色的RGB圖像:h = image(RGB,'xdata',X(1,:),'ydata',Y(:,1));axis xy% 設(shè)置透明度:set(h,'alphadata',Z)% 將渲染器設(shè)置為OpenGL,因為透明度僅適用于OpenGL:set(gcf,'renderer','OpenGL');% 底部:uistack(h,'bottom')%% 清除:if nargout==0    clear hendend
    4 ?  i8 Y' A+ S$ \參考文獻(xiàn):
    5 K# d) d) ~) I, S* i2 m  z7 t好玩的matlab:https://idmatlab.blog.csdn.net/article/details/113733467
    " B! R* D6 S8 J! c/ V
    ' ^0 X1 U6 S3 m5 X8 w. k5 i
    ' f* e! _4 O  t# H* h! }! q. F
    6 L/ D. r% V: A" X) P( Q好玩的matlab 1分鐘前
    ! L8 M5 X8 E  w6 X; R誰給你的權(quán)利,一天啥正事不干就想著玩手機,還不快去測試代碼。' {/ L( i: m) p9 M

    / Q1 L2 ]6 x2 f6 o往期精彩回顧! W1 _  h0 \/ ^  n2 R) g
    & _, m9 l7 o' x6 @* |
    推薦 | 【好玩的源碼】MATLAB 繪制動態(tài)正弦函數(shù)推薦 | 【高級繪圖】MATLAB怎么將圖形局部放大推薦 | 【源碼分享】1 {5 m6 s* h9 ^9 T8 K: I4 x# I
    4 S; S) Y5 b, J( @" e' `
    - m( K3 Z4 d+ j1 v: r

    & Y. {8 n" z$ z1 \' [ ( E5 R* t9 T! Y$ c
      J, S. P' I5 O$ I3 B
    ! M! _0 r4 C! D. a% Y5 Z6 C
    4 H  _7 l' Z9 v0 J  y$ j* N
    ↓↓↓ 點擊"閱讀原文" 【查看更多信息】
  • 回復(fù)

    使用道具 舉報

    發(fā)表回復(fù)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表