- A+
所属分类:R语言
一切都是从一个故事开始的:1650年,斯德哥尔摩街头,一个宁静的午后,笛卡尔邂逅了18岁的瑞典公主克里斯汀。机遇巧合,一段纯粹、美好的爱情悄然萌发。然而,没过多久,他们的恋情传到了国王的耳朵里。国王大怒,将笛卡尔放逐,而公主被软禁在宫中。 身体孱弱的笛卡尔不久便染上重病,在生命进入倒计时的那段日子,他日夜思念的还是街头偶遇的那张温暖的笑脸。他每天坚持给她写信,盼望着她的回音。然而,这些信都被国王拦截下来。在笛卡尔给克里斯汀寄出第十三封信后,他永远地离开了这个世界。此时,被软禁在宫中的小公主依然徘徊在皇宫的走廊里,思念着远方的情人。这最后一封信上没有写一句话,只有一个方程:r=a(1-sinθ)。——传说中著名的心形函数。不过,事实告诉我们,除非你的目标妹子也是一只Geeker(至少会用Mathematica或者MATLAB等软件),否则像笛卡尔这样单给一个函数的结局大概就是你推公式别人推妹子了……表白什么的还是选择更浅显易懂的方法吧。
最后,祝大家好运!
1祝福代码
1)加加载程序包
- library(grid)
2)绘制心形函数
- heart <- function(lcolor){
- t=seq(0, 2*pi, by=0.1)
- x=16*sin(t)^3
- y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
- a=(x-min(x))/(max(x)-min(x))
- b=(y-min(y))/(max(y)-min(y))
- grid.lines(a,b,gp=gpar(col=lcolor,lty = "solid",lwd = 6))
- }
- heart("hotpink")
- grid.newpage()
3)绘制玫瑰函数
- rose=function(){
- grid.circle(x=0.5, y=0.5, r=0.5,gp=gpar(fill="red",lwd = 3))
- vp <- viewport(.5, .5, w=.9, h=.9)
- pushViewport(vp)
- grid.polygon(x=c(0.08, .5, 0.94),y=c(.22, 1.03, .22),gp=gpar(lwd =
- vp2 <- viewport(.5, .5, w=.4, h=.4)
- pushViewport(vp2)
- grid.circle(x=0.5, y=0.5, r=0.5,gp=gpar(fill="red",lwd = 3))
- vp3 <- viewport(.5, .5, w=.9, h=.9,angle=180)
- pushViewport(vp3)
- grid.polygon(x=c(0.08, .5, 0.94),y=c(.22, 1.03, .22),gp=gpar(lwd = 3))}
- rose()
4)调整图形
- grid.newpage()
- pushViewport(viewport(x=0.1, y=0.1,w=0.2, h=0.2))
- grid.newpage()
- for (j in 1:30) {
- vp <- viewport(.5, .5, w=.9, h=.9)
- pushViewport(vp)
- heart("hotpink")
- }
5)调整图形及添加文字
- grid.newpage()
- vp1 <- viewport(.4, .5, w=.5, h=.5,angle=15)
- pushViewport(vp1)
- heart("red")
- vp2 <- viewport(0.9, .27, w=.7, h=.7,angle=-30)
- pushViewport(vp2)
- heart("hotpink")
- grid.text("执手偕老",
- x=0.2,y =1.2, just = c("center", "bottom"),
- gp = gpar(fontsize=30), vp = vp)
- vp3 <- viewport(-0.65, 1.2, w=.3, h=.3,angle=-30)
- pushViewport(vp3)
- rose()
2输出如下
原文及图片来源:统计之都(作者林宇)以及果壳网(作者Maxwellsdemon,链接http://www.guokr.com/post/60867/)。
本文部分文字进行删减。
注:操作平台为Rstudio
支付宝打赏
微信打赏
赏