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

就是达不到想要的效果。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 zophim 于 2020-4-10 16:56 编辑 1 z" Q/ I, ~! ~

' m  ]  m. P7 ?. c1 ^0 c3 v有一堆0-2范围变动的数据,要将之按顺序画出折线图,如何让y轴大于1的区域为蓝色,小于1的为绿色?! m. O9 U4 K% r, N: l1 z
也参考了论坛里相关内容,但是就是达不到想要的效果。我的代码如下(为了防止数据稀疏,采用线性插值法):
3 j4 w9 W2 e0 a- o7 Wx=1:1:100;
5 n# A6 h$ X! P6 t4 x; J% vy=2*rand(1,100);, }- m, g1 m9 l, c6 e# I2 B1 t% c1 D
xi=0:1/10000:100;2 r* T- v/ j8 g+ p
yi=interp1(x,y,xi,'linear');
' e+ m! K- C' K! eplot(xi,yi): `& N' s2 Z/ V
hold on  V- M0 p$ G9 N
area(xi(yi>1),yi(yi>1),'FaceColor','b')
3 O5 p  M# C6 @" ^! Y: [1 j3 A8 F% P" C  Zhold on4 s+ s* K; r+ j* d. D5 J
area(xi(yi<1),yi(yi<1),'FaceColor','g')
  l% _$ T& d' P. [. l9 E  C' ]4 b) V9 r
结果如图所示,但是我想让y轴数值为1的下方蓝色部分应该显示绿色,原先绿色部分应该是白色。
$ {* I5 R4 C. J请教大神,非常感谢!$ @( |% l* @$ W- t: Q% y$ f) O

. K8 R9 ]3 {7 H9 N

该用户从未签到

2#
发表于 2020-4-10 18:11 | 只看该作者
你可以试试换个思路,先把f(x)下区域全部涂蓝,再把y = 1下区域全部涂绿,最后把f(x)与y = 1下的交集涂白
" w5 Y: J' y: n5 l/ Yx = 0:1:20;* f" g$ B( x. @+ h0 k$ V
y = 2*rand(1,21);# X& W" r- g2 q( F/ ]) y. Q
xi = 0:1e-2:20;
+ _' ]# [. N) g0 j! F) oyi = interp1(x,y,xi,'linear');
6 H0 s. r3 B( N. @0 Qclose all;hold on
0 V, r* r7 x6 X2 T5 X! carea(xi(yi>1),yi(yi>1),'FaceColor','b'). y, c9 b2 S. O
area(xi(yi<1),0.*xi(yi<1)+1,'FaceColor','g')
" U! ^7 n6 T( s9 Varea(xi,bsxfun(@min, yi, 1),'FaceColor','w')8 \0 P; G! A4 O' F- S' b
plot(xi,yi,'k-','LineWidth',2)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:42 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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