找回密码
 注册
关于网站域名变更的通知
查看: 470|回复: 1
打印 上一主题 下一主题

就是达不到想要的效果。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-10 16:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 zophim 于 2020-4-10 16:56 编辑   ]% r, V5 {* e* e+ T
! D6 i7 r6 g! [; b) s
有一堆0-2范围变动的数据,要将之按顺序画出折线图,如何让y轴大于1的区域为蓝色,小于1的为绿色?
7 o  S2 ?; E" \9 F  [% r  ], D也参考了论坛里相关内容,但是就是达不到想要的效果。我的代码如下(为了防止数据稀疏,采用线性插值法):
% c' \- L' i7 `( [% g0 b: e, Fx=1:1:100;
  o+ J$ @* G7 D. |6 O1 N- yy=2*rand(1,100);7 N0 Q  r+ {* t, G; I
xi=0:1/10000:100;
; ?& u: X6 z# g4 I5 f; ~. lyi=interp1(x,y,xi,'linear');
- D: @, P( s! l" o6 E/ c. W: z0 bplot(xi,yi)1 z6 X7 t" Y/ `. x
hold on
8 G7 E& b8 b6 k6 B( C9 ?  M( carea(xi(yi>1),yi(yi>1),'FaceColor','b')
$ d' \6 y$ l8 k( L3 |. }/ `hold on8 R5 X5 d5 k/ j6 g
area(xi(yi<1),yi(yi<1),'FaceColor','g')
) H* r) M) t6 n' g7 E
( r" p4 f# D  g; p结果如图所示,但是我想让y轴数值为1的下方蓝色部分应该显示绿色,原先绿色部分应该是白色。
3 B5 l4 C: K% |, n# J2 [) ^. m5 k请教大神,非常感谢!
) r! N7 S5 W% z& j/ I 2 d( i2 g8 y' \

该用户从未签到

2#
发表于 2020-4-10 18:11 | 只看该作者
你可以试试换个思路,先把f(x)下区域全部涂蓝,再把y = 1下区域全部涂绿,最后把f(x)与y = 1下的交集涂白
9 J( Y, K" V+ c' M& h. q  Ex = 0:1:20;
# u) O/ [% n0 `. \" `' G0 J- T  ky = 2*rand(1,21);
* ~3 @* l# G& j# w, Lxi = 0:1e-2:20;9 j- F; I- _7 {0 _5 }
yi = interp1(x,y,xi,'linear');* U6 g1 A& V3 U7 a# [
close all;hold on5 D/ |- E  r# p+ p
area(xi(yi>1),yi(yi>1),'FaceColor','b')
+ `. d. d& D. @: I2 Zarea(xi(yi<1),0.*xi(yi<1)+1,'FaceColor','g')4 L7 B* F" x8 T3 s' C/ i& e" ^
area(xi,bsxfun(@min, yi, 1),'FaceColor','w'), [1 c& l+ Q4 _3 {$ B3 h
plot(xi,yi,'k-','LineWidth',2)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 10:48 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表