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

就是达不到想要的效果。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 zophim 于 2020-4-10 16:56 编辑
' |; o: M+ S  m8 B* \* [6 h- k1 u" D, x: J2 z( i
有一堆0-2范围变动的数据,要将之按顺序画出折线图,如何让y轴大于1的区域为蓝色,小于1的为绿色?
, ]$ E. w8 A7 N" e; L. U" }# D也参考了论坛里相关内容,但是就是达不到想要的效果。我的代码如下(为了防止数据稀疏,采用线性插值法):
1 s) h8 X$ J6 {: R1 X$ R; _0 z/ X" wx=1:1:100;
. J4 d9 V& u. d+ cy=2*rand(1,100);
& N. H& F4 `1 A, @xi=0:1/10000:100;8 I1 ~3 w5 j( P
yi=interp1(x,y,xi,'linear');
% u7 \9 c( P" z0 |2 F2 Dplot(xi,yi)5 I. I, d* l/ T% B1 t
hold on
7 k" l. `- p2 T" w/ E5 a- Narea(xi(yi>1),yi(yi>1),'FaceColor','b')
& S" U5 R$ u3 Q9 Ohold on
6 {/ d: w" h3 j3 [area(xi(yi<1),yi(yi<1),'FaceColor','g')0 Y0 D7 j9 t: N2 s" d* b$ X
+ c' p' [( W7 f  f3 U0 }$ I
结果如图所示,但是我想让y轴数值为1的下方蓝色部分应该显示绿色,原先绿色部分应该是白色。
. W2 D0 \+ e/ v+ g- e, r1 d- v  \请教大神,非常感谢!! Q. V' J' U! d9 \2 C) a" ]- f

1 n0 `' \' ^. D8 \; ?" B9 A

该用户从未签到

2#
发表于 2020-4-10 18:11 | 只看该作者
你可以试试换个思路,先把f(x)下区域全部涂蓝,再把y = 1下区域全部涂绿,最后把f(x)与y = 1下的交集涂白
( o* _1 i( Z6 {# e- ]x = 0:1:20;/ k& J. d0 B) }- `* V& f  N
y = 2*rand(1,21);$ G2 a( J) B4 j" l1 {
xi = 0:1e-2:20;
  z( a0 R( h' F  Jyi = interp1(x,y,xi,'linear');
, d3 z# Z9 Z1 W# j: H: zclose all;hold on
% Q+ v3 g$ R7 G5 v6 D: c# \( V! narea(xi(yi>1),yi(yi>1),'FaceColor','b')
% {" Q/ C: d% R" ]  v( sarea(xi(yi<1),0.*xi(yi<1)+1,'FaceColor','g')
: J) g% v3 W* `8 C/ V# @area(xi,bsxfun(@min, yi, 1),'FaceColor','w')
% G9 D& R- Q% [3 K7 h4 j1 `plot(xi,yi,'k-','LineWidth',2)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:50 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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