楼主: shetianlang
10878 10

[作图问题求助] 怎么在两个函数曲线之间填充阴影 [推广有奖]

  • 6关注
  • 10粉丝

已卖:1173份资源

讲师

52%

还不是VIP/贵宾

-

TA的文库  其他...

微观数据研讨

威望
0
论坛币
25816 个
通用积分
31.3029
学术水平
85 点
热心指数
94 点
信用等级
63 点
经验
16219 点
帖子
406
精华
0
在线时间
494 小时
注册时间
2008-11-27
最后登录
2023-1-5

楼主
shetianlang 发表于 2015-12-19 10:47:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想在两个函数曲线之间填充阴影(类似如下的图),请问这个能用tw function 实现吗?我知道可以recast(area)一直填充到X轴,但如何只填充一部分到下面的曲线呢?谢谢。





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:function area TIO Fun UNC

回帖推荐

somediffer 发表于2楼  查看完整内容

可以试试 recast(area) base(...) ...表示某一值,从该值往上都是用颜色填充
文库:微观数据研讨

沙发
somediffer 发表于 2015-12-19 16:33:52
可以试试 recast(area)  base(...)
...表示某一值,从该值往上都是用颜色填充
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 10 热心帮助其他会员
shetianlang + 5 + 3 + 3 + 3 观点有启发

总评分: 经验 + 100  论坛币 + 15  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

藤椅
shetianlang 发表于 2015-12-22 01:01:29
somediffer 发表于 2015-12-19 16:33
可以试试 recast(area)  base(...)
...表示某一值,从该值往上都是用颜色填充
谢谢,这个可行。再请教一下,如果第二个函数不是水平线呢,这种情况该怎么画?比如,我想在函数y1=10*sin(x)与y2=x^2包围的部分画上阴影,Stata有办法处理吗?

板凳
niuniuyiwan 在职认证  发表于 2015-12-22 17:44:07
shetianlang 发表于 2015-12-22 01:01
谢谢,这个可行。再请教一下,如果第二个函数不是水平线呢,这种情况该怎么画?比如,我想在函数y1=10*si ...
  1. set scheme s1color
  2. clear
  3. set obs 5000
  4. gen x=runiform(0,2.48)
  5. gen x1=runiform(2.48,10)
  6. gen y1 =10*sin(x)
  7. gen y2=x^2
  8. gen y3=10*sin(x1)
  9. gen y4=x1^2
  10. #d;
  11. twoway rarea y2 y1 x ,sort fcolor(green) lcolor(black)||
  12. rarea y4 y3 x1,sort fcolor(blue) lcolor(black);
  13. #d cr
复制代码
Graph.png
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 10 热心帮助其他会员
Sunknownay + 3 + 3 + 3 热心帮助其他会员
shetianlang + 5 + 3 + 3 + 3 观点有启发

总评分: 经验 + 100  论坛币 + 15  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

报纸
niuniuyiwan 在职认证  发表于 2015-12-22 19:32:28
  1. clear
  2. set obs 5000
  3. gen x=runiform(50,70)
  4. gen y=((x/10)+2.5)^2
  5. gen y3=50
  6. input ///
  7.     y1 x1 y2 x2
  8.         0 0 0   100
  9.         0 0 100 0
  10. end

  11. twoway ///
  12. rarea y3 y x,sort fcolor(green) || ///
  13. pcarrow y1 x1 y2 x2  || ///
  14. pci  50 0  50 80 ,lcolor(chocolate) lw(*2) ///
  15. yscale(off) xscale(off)  plotregion(style(none)) legend(off) ///
  16. text(50 90 "Temperature") ///
  17. text(45 90 "Threshold") ///
  18. text(40   90 "50(F)")   ///
  19. text(-2 50 "Growth Rate(1/Time)") ///
  20. text(50 -2 "T"   "e"   "m"   "p"   "e"   "r"   "a"  "t"  "u"  "r"  "e", color(chocolate))
复制代码
Graph.png
已有 1 人评分经验 论坛币 收起 理由
dxystata + 100 + 5 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 5   查看全部评分

地板
niuniuyiwan 在职认证  发表于 2015-12-22 20:00:55
Graph.png
g1.PNG

7
niuniuyiwan 在职认证  发表于 2015-12-22 20:03:24
Graph.png
g1.PNG
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员
txje + 2 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

8
shetianlang 发表于 2015-12-23 02:07:00
niuniuyiwan 发表于 2015-12-22 20:03
谢谢楼上大神!

9
shetianlang 发表于 2015-12-23 12:46:04
niuniuyiwan 发表于 2015-12-22 17:44
以下code同样可行,可避免计算交点处x值:
  1.     set scheme s1color
  2.     clear
  3.     set obs 5000
  4.     gen x=runiform(0,10)
  5.     gen y1 =10*sin(x)
  6.     gen y2=x^2
  7.     gen low=min(y1,y2)
  8.     gen high=max(y1,y2)
  9.     #d;
  10.     twoway rarea low y1 x, sort fcolor(red) lcolor(black)
  11.     || rarea low y2 x ,sort fcolor(green) lcolor(black);
  12.     #d cr
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

10
shetianlang 发表于 2015-12-23 13:02:51
niuniuyiwan 发表于 2015-12-22 19:32
  1. clear
  2. twoway function y1=((x/10)+2.5)^2, range(50 70) recast(area) color(green) base(50) ///
  3. || function y2=50, range(0 80)                                                     ///
  4. ||,                                                                                ///
  5. ylabel(0(10)90)    legend(off) yscale(off) xscale(off)                             ///
  6. xlabel(0(10)100)                                                                   ///
  7. text(50 90 "Temperature")                                                          ///
  8. text(45 90 "Threshold")                                                            ///
  9. text(40   90 "50(F)")                                                              ///
  10. text(-4 50 "Growth Rate(1/Time)")                                                  ///
  11. text(50 -3 "T"   "e"   "m"   "p"   "e"   "r"   "a"  "t"  "u"  "r"  "e", color(chocolate))
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-22 06:14