之前在网上看到一些程序猿给自己的女朋友啊对象啊用代码画玫瑰花的,大家都把这种浪漫的情节分享出来的,获得很多人的羡慕和祝福。但是我看大部分使用Python、java或者C++来完成的。
但我想着咱这R语言也不赖嘛,肯定也能完成这种简单任务,于是就开始了自己的玫瑰花琢磨之路!话不多说,直接上干货,将代码分享出来给各位舔狗,哦不对,各位帅哥讨女朋友女神的欢心。
require(emojifont)
ggplot() + geom_emoji('cake')
ggplot() + geom_emoji("rose", color=c("#ff00ff")) + theme_void()
ggplot() + geom_emoji("rose", color='blue') + theme_void()
ggplot() + geom_emoji("heart", color='red') + theme_void()
x = seq(-2, 2*pi, length=30)
y = cos(x)
z = -cos(x)
ggplot() +
geom_emoji('rose',color = '#ff00ff', x=x, y=y, size=10)+
geom_emoji('heart',color = 'red', x=x, y=z, size=10)+
geom_line(color = 'red', x=x, y=0, size=10)+
xlim(-2,2)+
theme_classic()
library(plotly)
library(colorfindr)
pal <- get_colors("/database/jiangxinyu/Project/Mon-Project/data/R_Visualization/赛博玫瑰/蓝色妖姬.jpg")%>%make_palette((n=10))
x<- seq(0,24) /24
t <- seq(0,575,by = 0.5)/575*20 *pi + 4 *pi
grid <- expand.grid(x = x,t = t)
x <- matrix(grid$x,ncol = 25,byrow = TRUE)
t <- matrix(grid$t,ncol = 25,byrow = TRUE)
p<- (pi/2)*exp(-t/(8*pi))
change <- sin(15 * t) /150
u<-1-(1-(3.6*t)%%(2*pi) /pi)^4/2+change
y <- 2*(x^2- x)^2*sin(p)
r<- u*(x*sin(p) +y*cos(p))
xx=r*cos(t)
yy=r*sin(t)
zz=u*(x*cos(p)-y*sin(p))
pal <- get_colors("/database/jiangxinyu/Project/Mon-Project/data/R_Visualization/赛博玫瑰/蓝色妖姬.jpg")%>%make_palette((n=10))
plot_ly(x = ~xx,y = ~yy,z = ~zz,color = ~zz, colors =pal,opacity = 0.5)%>% add_surface()->plot
add_trace(plot,x=rep(0,4),y=rep(0,4),z=seq(-0.5,0,length=4),mode='lines',line = list(color ='#003300',width = 8))
pal <- get_colors("/database/jiangxinyu/Project/Mon-Project/data/R_Visualization/赛博玫瑰/花仙紫.jpg")%>%make_palette((n=10))
plot_ly(x = ~xx,y = ~yy,z = ~zz,color = ~zz, colors =pal,opacity = 0.5)%>% add_surface()->plot
add_trace(plot,x=rep(0,4),y=rep(0,4),z=seq(-0.5,0,length=4),mode='lines',line = list(color ='#003300',width = 8))
大概画出来会是这些个样子,具体根据自己的审美可以调整DIY!
对了,最近用GPT绘制图片。发现它画的是真不赖啊!贴一张!
有想要使用gpt4写代码绘图的朋友可以看看这篇文章: