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

就是达不到想要的效果。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 zophim 于 2020-4-10 16:56 编辑 & G4 ~. o" n; g; Q" Q" Y7 F

% V0 _: S6 \7 Z# ?5 B, _( H有一堆0-2范围变动的数据,要将之按顺序画出折线图,如何让y轴大于1的区域为蓝色,小于1的为绿色?
9 R1 j- C7 o/ u5 o2 Y0 ^也参考了论坛里相关内容,但是就是达不到想要的效果。我的代码如下(为了防止数据稀疏,采用线性插值法):" G! E0 S9 Z* F6 a! V
x=1:1:100;
9 j: Q' n$ U7 E) j' ?y=2*rand(1,100);8 k/ f, o! U$ j
xi=0:1/10000:100;  a3 v8 l4 A5 w- j
yi=interp1(x,y,xi,'linear');# _. c: G6 S: M6 V) m' k
plot(xi,yi)
( p. c3 v* z5 u: k; shold on
( A* I# {0 j+ tarea(xi(yi>1),yi(yi>1),'FaceColor','b')- m1 {+ w: v' S, K) y+ ]  E
hold on+ V! f. q( k5 o8 U% x
area(xi(yi<1),yi(yi<1),'FaceColor','g')
7 b4 c/ [7 Q# [. O& T) a6 F: I+ E' A9 k- g$ R
结果如图所示,但是我想让y轴数值为1的下方蓝色部分应该显示绿色,原先绿色部分应该是白色。
7 Z0 h5 u8 z7 D( j8 b: j) ^1 q请教大神,非常感谢!
- R. n$ g% K# N6 U- J - }, d* o7 R& _9 I3 z! j/ y

该用户从未签到

2#
发表于 2020-4-10 18:11 | 只看该作者
你可以试试换个思路,先把f(x)下区域全部涂蓝,再把y = 1下区域全部涂绿,最后把f(x)与y = 1下的交集涂白* B+ i- w4 n2 L
x = 0:1:20;
7 J* s5 k$ J; ~0 `8 V, Ly = 2*rand(1,21);
( H5 l& T. w7 vxi = 0:1e-2:20;
4 e" B0 c0 o- s% j9 E6 Cyi = interp1(x,y,xi,'linear');* D- l  H0 Z$ C0 C+ _. K! R  [
close all;hold on
; ^# y0 x! h) k# I( p1 Qarea(xi(yi>1),yi(yi>1),'FaceColor','b')& h3 Z1 m  ]( ~# X  O# w; ~
area(xi(yi<1),0.*xi(yi<1)+1,'FaceColor','g')+ G  k+ C5 |$ R  ~0 W
area(xi,bsxfun(@min, yi, 1),'FaceColor','w')
1 l1 {: u7 H( c0 o! L# Wplot(xi,yi,'k-','LineWidth',2)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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