用R语言写一颗圣诞树
方法一
install.packages('ggplot2')
library(ggplot2)# generowanie losowych punktów
x1 <- runif(100000, -1, 1)
y1 <- runif(100000, -1, 1.6)
# równanie na serce
which1 <- x1^2+(y1-(x1^2)^(1/4))^2<=1
x1 <- x1[which1]
y1 <- y1[which1]
# drugi poziom
x2 <- 1.5*x1 -1
y2 <- 1.5*y1
# trzeci poziom
x3 <- 2*x1 -2
y3 <- 2*y1
dt <- data.frame(c(x1,x2,x3),c(y1,y2,y3))
colnames(dt) <- c("x", "y")
dt$y <- dt$y - 0.25
dt <- dt[dt$x>-2 & dt$x<1 & dt$y>-2.25 & dt$y<0,]
dt <- data.frame(c(dt$x,dt$x), c(dt$y, -dt$y))
colnames(dt) <- c("x", "y")
#pieniek
p1 <- runif(1000, -0.5, 0.5)
p2 <- runif(1000, -2.5, -2)
pieniek <- data.frame(p1,p2)
colors <- c('green', 'green2', 'green4', 'darkgreen')
colors2 <- rep(colors,length.out=dim(dt)[1])
bombki <- data.frame(c(-1.8, -1.7, -1.1, -0.6, 0, 0.3), c(-1,0.7,-0.9,0.1,-0.3,0.3))
colnames(bombki) <- c("x", "y")
lancuch <- data.frame(data.frame(x1 = -0.5, x2 = 1, y1 = 21.0, y2 = 15.0))
gwiazda <- data.frame(c(0), c(0.7))
colnames(gwiazda)<- c("x", "y")
ggplot(data=NULL) + geom_point(data=dt, aes(x = y, y=x), col=colors2) +geom_point(data=bombki, aes(x=y, y=x), size=10, col='blue') +geom_point (data=pieniek, aes(x=p1, y=p2), col='brown') +geom_point(data=gwiazda, aes(x=x, y=y),size=10,shape=24, col="yellow", fill='yellow') +geom_point(data=gwiazda, aes(x=x ,y=y),size=10,shape=25, col="yellow", fill='yellow') +geom_curve(aes(x=-1,xend=1.2,y=-0.65,yend=-1.2), col='red',size=2, curvature = 0.3) +geom_curve(aes(x=1.2, y=-1.2, xend=-1.2, yend=-1.5), size=2, col="red", curvature = -0.3) +geom_curve(aes(x=-1,xend=0.8,y=-0.65,yend=-0.5), col='red',size=2, curvature = 0.3) +geom_curve(aes(x=-0.8,xend=0.8,y=-0.2,yend=-0.5), col='red',size=2, curvature = 0.2) +geom_curve(aes(x=-0.8,xend=0.9,y=-0.2,yend=0.15), col='red',size=2, curvature = 0.3) +geom_curve(aes(x=-0.65,xend=0.9,y=0.35,yend=0.15), col='red',size=2, curvature = 0.3) +theme(axis.line=element_blank(),axis.text.x=element_blank(),axis.text.y=element_blank(),axis.ticks=element_blank(),axis.title.x=element_blank(),axis.title.y=element_blank(),legend.position="none",panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(),panel.grid.minor=element_blank(),plot.background=element_blank())
最后得到的图是这个样子的:
方法二
L <- matrix(c(0.03,0,0,0.1,0.85,0.00,0.00,0.85,0.8,0.00,0.00,0.8,0.2,-0.08,0.15, 0.22, -0.2,0.08,0.15, 0.22,0.25, -0.1,0.12, 0.25,-0.2,0.1,0.12,0.2),nrow=4)
B <- matrix(c(0,0,0,1.5,0,1.5,0,0.85,0,0.85,0,0.3,0, 0.4),nrow=2)
prob = c(0.02, 0.6,.08, 0.07, 0.07, 0.07, 0.07)
N = 1e5
x = matrix(NA,nrow=2,ncol=N)
x[,1] = c(0,2)
k <- sample(1:7,N,prob,replace=TRUE)
for(i in 2:N){x[,i] = crossprod(matrix(L[,k[i]],nrow=2),x[,i-1]) + B[,k[i]]}
par(bg='black',mar=rep(0,4))
plot(x=x[1,],y=x[2,],col=grep('green',colors(),value=TRUE),axes=FALSE,cex=.1, xlab='', ylab='',pch='.')
bals <- sample(N,20)
points(x=x[1,bals],y=x[2,bals]-.1,col=c('red','blue','yellow','orange'),cex=1.5,pch=19)
text(x=-.7,y=8, labels='Merry', adj=c(.5,.5), srt=45,vfont=c('script','plain'),cex=3,col='gold')
text(x=0.7,y=8,labels='Christmas',adj=c(.5,.5),srt=-45, vfont=c('script','plain'),cex=3, col='gold')
text(x=-0.6,y=0,cex=0.8,labels="",col="white") #label参数可以写一点自己想写的内容, hhhh......
最后得到的图片是这个样子的:
用R语言写一颗圣诞树相关推荐
- r语言写九九乘法表并保存为txt文件
r语言写九九乘法表并保存为txt文件 代码 for(i in 1:9){for(j in 1:i){cat(j,"x",i,"=",i*j,'\t',file= ...
- 圣诞节用代码写一颗圣诞树【html5写的3D逼真圣诞树外加python无延迟的豪华圣诞树】
文章目录 前言[便捷源码下载处] 一.html版本 豪华动态圣诞树 抖音同款 操作步骤 1.新建文本 3.将后缀txt改为html 4.双击打开 [这是动态的] 二.python取消延迟秒出图版 [全 ...
- C 语言画一颗圣诞树
使用须知:测试机为 Mac,windows 下可能会需要修改 代码使用了 usleep(),若为 windows 可能需要修改 先上效果图(牛是用 cowsay 生成的) #include <s ...
- r语言写内曼最优分配_R中最优化函数optim
最优化函数optim 目标函数: $$f(x_1,x_2)=(1-x_1)^2+100(x_2-x_1^2)^2$$ 该函数全局最小值在($x_1=1,x_2=1$)时取到. 下面这种写法是因为有多个 ...
- 泰尔指数r语言_还在用Excel算区位基尼系数?用geo.gini吧!
区域经济研究中,经常需要测度产业空间集中的程度,常用的指标有区位基尼系数(Locational GiniCoefficient).泰尔指数(Theil Index)和EG指数等.这一期先讲区位基尼系数 ...
- 分类树/装袋法/随机森林算法的R语言实现
原文首发于简书于[2018.06.12] 本文是我自己动手用R语言写的实现分类树的代码,以及在此基础上写的袋装法(bagging)和随机森林(random forest)的算法实现.全文的结构是: 分 ...
- ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...
- R语言入门——猜数游戏
0引言 实在无聊,看着抖音上在玩数字炸弹.自己用R语言写了个猜数字游戏.下面与大家分享一下. 1.代码 # 猜数游戏 # # 版权:统计学小王子 # R语言版本:3.6.2 # 参数:a是起始值,b是 ...
- R语言循环函数编写三境界
1. 三境界 R语言写循环有三境界: 手动for循环 apply系列 purrr泛函式编程 其中,手动for循环我最常用,apply系列半吊子,purrr函数越用越趁手,这里介绍一下purrr编写循环 ...
最新文章
- HttpContext.Current.Session ,出现未将对象引用设置到实例上
- 跟我学算法聚类(kmeans)
- mysql语言定义_MySQL定义语言[DDL]
- 创建topic验证kafka集群
- 【PAT (Advanced Level) Practice】1051 Pop Sequence (25 分)
- 汇编语言--可屏蔽中断
- openssl C函数总结,
- VTK:图片之ImageImport
- ShardedJedisPool 中可用连接数的小bug
- 从零开始学习python | 实例讲解如何制作Python模式程序
- linux 项目同步,Linux项目系统,Linux控制台窗口,同步和附加到进程的Linux C ++工作负载改进...
- 关于某题左列定宽右列宽度自适应布局的学习
- 07.计算Nova→2.nova组件详解→2.nova-scheduler
- EOVA的下拉级联实现过程
- 幂级数收敛域和和函数定义域的问题
- 咸鱼Maya笔记—初识Maya 2019
- HDU-3237 Help Bubu(状压dp)
- C300 OLT自动下发WAN连接指导配置
- 京东面试题咖啡杯问题(贪心算法、递归综合运用)
- rust-crate