楼主: Captain-CUI
17378 78

[stata资源分享] 520!!!Stata和R助力表白   [推广有奖]

已卖:27905份资源

学术权威

82%

还不是VIP/贵宾

-

TA的文库  其他...

Stata小问题

Shibor

威望
6
论坛币
550361 个
通用积分
26062.6831
学术水平
2613 点
热心指数
2883 点
信用等级
2418 点
经验
341875 点
帖子
5713
精华
18
在线时间
2308 小时
注册时间
2014-10-6
最后登录
2023-11-28

初级学术勋章 中级热心勋章 初级热心勋章 中级学术勋章 高级学术勋章 高级热心勋章 初级信用勋章 中级信用勋章 特级热心勋章 高级信用勋章 特级学术勋章

楼主
Captain-CUI 学生认证  发表于 2016-5-20 08:16:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

一切都是从一个故事开始的:


1650年,斯德哥尔摩街头,一个宁静的午后,笛卡尔邂逅了18岁的瑞典公主克里斯汀。


机遇巧合,一段纯粹、美好的爱情悄然萌发。


然而,没过多久,他们的恋情传到了国王的耳朵里。国王大怒,将笛卡尔放逐,而公主被软禁在宫中。 身体孱弱的笛卡尔不久便染上重病,在生命进入倒计时的那段日子,他日夜思念的还是街头偶遇的那张温暖的笑脸。他每天坚持给她写信,盼望着她的回音。然而,这些信都被国王拦截下来。在笛卡尔给克里斯汀寄出第十三封信后,他永远地离开了这个世界。此时,被软禁在宫中的小公主依然徘徊在皇宫的走廊里,思念着远方的情人。


这最后一封信上没有写一句话,只有一个方程:r=a(1-sinθ)。——传说中著名的心形函数。


不过,事实告诉我们,除非你的目标妹子也是一只Geeker(至少会用Mathematica或者MATLAB等软件),否则像笛卡尔这样单给一个函数的结局大概就是你推公式别人推妹子了……表白什么的还是选择更浅显易懂的方法吧。





在这个特殊的日子里,特意搜集了利用Stata绘制心形线的程序,代码如下


  1. clear
  2. range t 0 2*_pi 1000
  3. gen x=16*sin(t)^3
  4. gen y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
  5. egen x_min=min(x)
  6. egen x_max=max(x)
  7. egen y_min=min(y)
  8. egen y_max=max(y)
  9. gen a=(x-x_min)/(x_max-x_min)
  10. gen b=(y-y_min)/(y_max-y_min)
  11. line b a
  12. gr_edit yaxis1.draw_view.setstyle, style(no)
  13. gr_edit xaxis1.draw_view.setstyle, style(no)
  14. gr_edit plotregion1.AddTextBox added_text editor .7055394244311991 .2810707216715078
  15. gr_edit plotregion1.added_text_new = 1
  16. gr_edit plotregion1.added_text_rec = 1
  17. gr_edit plotregion1.added_text[1].style.editstyle  angle(default) size(medsmall) color(red) horizontal(left) vertical(middle) margin(zero) linegap(zero) drawbox(no) boxmargin(zero) fillcolor(bluishgray) linestyle( width(thin) color(red) pattern(solid)) box_alignment(east) editcopy
  18. gr_edit plotregion1.added_text[1].style.editstyle size(large) editcopy
  19. gr_edit plotregion1.added_text[1].text = {}
  20. gr_edit plotregion1.added_text[1].text.Arrpush  "           I LOVE YOU"
  21. graph export "C:\Desktop\520.png", as(png) wid(800)hei(600) replace
复制代码
以下为输出结果


520.png 520(1).png


以上程序基于stata12运行,如果有stata14的话,还可以输入中文!祝大家好运!


注:如果图片中字符没有居中的话,请在前面输入空格调整!附上do文件 520.do (1.02 KB)


以上程序来自:http://mp.weixin.qq.com/s?__biz= ... =21#wechat_redirect



接下来是R绘制心形线,代码如下:
  1. 1)加加载程序包
  2. library(grid)
  3. 2)绘制心形函数
  4. heart <- function(lcolor){
  5.   t=seq(0, 2*pi, by=0.1)
  6.   x=16*sin(t)^3
  7.   y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
  8.   a=(x-min(x))/(max(x)-min(x))
  9.   b=(y-min(y))/(max(y)-min(y))
  10.   grid.lines(a,b,gp=gpar(col=lcolor,lty = "solid",lwd = 6))
  11. }
  12. heart("hotpink")
  13. grid.newpage()
  14. 2)绘制玫瑰函数
  15. rose=function(){
  16.   grid.circle(x=0.5, y=0.5, r=0.5,gp=gpar(fill="red",lwd = 3))
  17.   vp <- viewport(.5, .5, w=.9, h=.9)
  18.   pushViewport(vp)
  19.   grid.polygon(x=c(0.08, .5, 0.94),y=c(.22, 1.03, .22),gp=gpar(lwd =
  20.   vp2 <- viewport(.5, .5, w=.4, h=.4)
  21.   pushViewport(vp2)
  22.   grid.circle(x=0.5, y=0.5, r=0.5,gp=gpar(fill="red",lwd = 3))
  23.   vp3 <- viewport(.5, .5, w=.9, h=.9,angle=180)
  24.   pushViewport(vp3)
  25.   grid.polygon(x=c(0.08, .5, 0.94),y=c(.22, 1.03, .22),gp=gpar(lwd = 3))}
  26. rose()
  27. 3)调整图形
  28. grid.newpage()
  29. pushViewport(viewport(x=0.1, y=0.1,w=0.2, h=0.2))
  30. grid.newpage()
  31. for (j in 1:30) {
  32.   vp <- viewport(.5, .5, w=.9, h=.9)
  33.   pushViewport(vp)
  34.   heart("hotpink")
  35. }
  36. 4)调整图形及添加文字
  37. grid.newpage()
  38. vp1 <- viewport(.4, .5, w=.5, h=.5,angle=15)
  39. pushViewport(vp1)
  40. heart("red")
  41. vp2 <- viewport(0.9, .27, w=.7, h=.7,angle=-30)
  42. pushViewport(vp2)
  43. heart("hotpink")
  44. grid.text("执手偕老",
  45.           x=0.2,y =1.2, just = c("center", "bottom"),
  46.           gp = gpar(fontsize=30), vp = vp)
  47. vp3 <- viewport(-0.65, 1.2, w=.3, h=.3,angle=-30)
  48. pushViewport(vp3)
  49. rose()
复制代码
注:操作平台为Rstudio,由于手头电脑没有装R,所以上述程序没有验证,就交给大家自己实践了!祝好运!


以上程序来自http://mp.weixin.qq.com/s?__biz=MzA4NTAyMjQ2Mg==&mid=206788501&idx=1&sn=53e07723fdb395a787e57ea53bffd332&scene=21#wechat_redirect



没有贴出matlab的程序,表示略遗憾!已经利用matlab抱得美人归的朋友不妨分享一下程序[titter]

最后,感谢那些做出巨大贡献的程序猿,没有他们的代码,表白怎能如此风骚!!!



二维码

扫码加我 拉你入群

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

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

关键词:Stata tata mathematica horizontal Mathematic 斯德哥尔摩 克里斯汀 的情人 笛卡尔 小公主

回帖推荐

huangmin30 发表于65楼  查看完整内容

对心形图稍作了些修改,更简洁,如下: clear range t 0 2*_pi 1000 gen x=16*sin(t)^3 gen y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t) egen x_min=min(x) egen x_max=max(x) egen y_min=min(y) egen y_max=max(y) gen a=(x-x_min)/(x_max-x_min) gen b=(y-y_min)/(y_max-y_min) #delimit ; line b a, lcolor(red) lwidth(*8) text(0.6 0.5 "写上祝福吧!" "(小伙伴们,学Stata的动力来了吗)", ...

Captain-CUI 发表于37楼  查看完整内容

附另一种MATLAB代码,个人认为是上述心形图中颜值最高的,还会跳动喔,单身汪必备神器~ 这个节日注定不平静

niuniuyiwan 发表于45楼  查看完整内容

蓝色 发表于53楼  查看完整内容

R程序的第19行,后面最后缺了一点 = 3)) 应该是: grid.polygon(x=c(0.08, .5, 0.94),y=c(.22, 1.03, .22),gp=gpar(lwd = 3))

Captain-CUI 发表于18楼  查看完整内容

http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=303845 补上matlab的程序!
已有 13 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
sfhsky + 40 + 1 + 1 + 1 精彩帖子
文化劳工 + 5 + 5 精彩帖子
np84 + 100 精彩帖子
夏目贵志 + 100 + 3 精彩帖子
日新少年 + 5 + 5 + 5 精彩帖子
airong121 + 5 + 1 + 1 + 1 精彩帖子
wwqqer + 100 + 1 + 1 + 1 精彩帖子
客初 + 100 + 3 精彩帖子
xuguw + 100 + 5 对论坛有贡献
giresse + 1 精彩帖子

总评分: 经验 + 940  论坛币 + 5  学术水平 + 17  热心指数 + 27  信用等级 + 11   查看全部评分

本帖被以下文库推荐

沙发
zounghy 发表于 2016-5-20 09:01:29
好用心!!!好创意!!!
已有 1 人评分经验 收起 理由
Captain-CUI + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

藤椅
Jealy 在职认证  发表于 2016-5-20 09:04:02
赞!有心人呀!祝你好运哈!{:0_253:}
已有 1 人评分经验 收起 理由
Captain-CUI + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

板凳
Captain-CUI 学生认证  发表于 2016-5-20 09:09:14
zounghy 发表于 2016-5-20 09:01
好用心!!!好创意!!!
活跃一下节日气氛而已!

报纸
Captain-CUI 学生认证  发表于 2016-5-20 09:09:44
Jealy 发表于 2016-5-20 09:04
赞!有心人呀!祝你好运哈!
加上原来的matlab,你可以召唤神龙了

地板
giresse 在职认证  发表于 2016-5-20 09:20:36
已有 1 人评分经验 收起 理由
Captain-CUI + 20 鼓励积极发帖讨论

总评分: 经验 + 20   查看全部评分

7
小财大道 学生认证  发表于 2016-5-20 09:22:20
文文,赶紧把你做出来的图形发给你心爱的姑娘,这才是王道
已有 1 人评分经验 收起 理由
Captain-CUI + 20 你起开

总评分: 经验 + 20   查看全部评分

8
凤凰翔天 在职认证  发表于 2016-5-20 09:44:40
这个确实厉害,楼主赶快去表白,祝你成功!这个软件里的数学公式不是原先的r=a(1-sinθ),而应该是展开后的近似逼近函数吧?
已有 1 人评分经验 收起 理由
Captain-CUI + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

9
行走的青年 在职认证  学生认证  发表于 2016-5-20 09:54:06
好赞 如此接地气的软件应用 楼主一定特别懂得how to live better
已有 1 人评分经验 收起 理由
Captain-CUI + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

10
Captain-CUI 学生认证  发表于 2016-5-20 09:56:59
凤凰翔天 发表于 2016-5-20 09:44
这个确实厉害,楼主赶快去表白,祝你成功!这个软件里的数学公式不是原先的r=a(1-sinθ),而应该是展开后 ...
应该是的!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-19 21:52