事情起因是这样的:在某个搞技群里有人发了一个11维的蜜汁微笑矩阵用来逼死密集恐惧症——于是有人用一个[擦汗]的表情表示无语……可是仅仅一个表情,怎么能以对等的气势怼回去呢?

事情起因是这样的:在某个搞技群里有人发了一个11维的蜜汁微笑矩阵用来逼死密集恐惧症——

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第1张

11*11蜜汁微笑矩阵

于是有人用一个[擦汗]的表情表示无语……

可是仅仅一个表情,怎么能以对等的气势怼回去呢?于是——

  1. emoji='[擦汗]'
  2. foriinrange(11):
  3. print(emoji*(i+1))

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第2张

11维下三角擦汗

不过考虑到这种方法只能把表情按离散整数的序列来放置,还不能在任意的连续数值处放表情。考虑到R中的ggimage包可以用图片来代替散点,于是一个思路就是画散点(曲线)图,然后用表情来代换散点。

然后,升级版的逼死密集恐惧症图形就新鲜出炉了——

正弦式笑哭

  1. library(ggplot2)
  2. library(ggimage)
  3. showtext::showtext.auto(enable=T)
  4. theme1<-theme(panel.background=element_rect(fill="black",color="black"),plot.background=element_rect(fill="black",color="black"),panel.grid=element_blank(),plot.title=element_text(hjust=0.5,family="SimHei",size=24,color="#FEFEFE"),
  5. axis.text=element_blank(),axis.ticks=element_blank())
  6. #正弦曲线
  7. x<-seq(from=0,to=2*pi,length.out=80)
  8. y<-sin(x)
  9. df_sin<-data.frame(x=x,y=y)
  10. ggplot(df_sin,aes(x,y))+
  11. geom_emoji(aes(image='1f602'))+
  12. labs(x="",y="",title="正弦式笑哭")+
  13. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第3张

正弦式笑哭

逻辑回归式笑哭

  1. #sigmoid曲线
  2. sigmoid<-function(x)return(1/(1+exp(-x)))
  3. x<-seq(from=-10,to=10,length.out=100)
  4. y<-sigmoid(x)
  5. df_sigmoide<-data.frame(x=x,y=y)
  6. ggplot(df_sigmoide,aes(x,y))+
  7. geom_emoji(aes(image='1f602'))+
  8. labs(x="",y="",title="逻辑回归式笑哭")+
  9. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第4张

逻辑回归式笑哭

正态分布式笑哭

  1. #正态密度曲线
  2. x<-seq(-5,5,length.out=100)
  3. y<-dnorm(x)
  4. df_norm<-data.frame(x=x,y=y)
  5. ggplot(df_norm,aes(x,y))+
  6. geom_emoji(aes(image='1f602'))+
  7. labs(x="",y="",title="正态分布式笑哭")+
  8. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第5张

正态分布式笑哭

爱心式笑哭

  1. #心形曲线
  2. t<-seq(0,2*pi,length.out=100)
  3. x<-16*(sin(t)^3)
  4. y<-13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
  5. df_heart<-data.frame(x=x,y=y)
  6. ggplot(df_heart,aes(x=x,y=y))+
  7. geom_emoji(aes(image='1f602'))+
  8. labs(x="",y="",title="爱心式笑哭")+
  9. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第6张

爱心式笑哭

众星捧月式笑哭

  1. #弧形
  2. x<-seq(-10,10,length.out=40)
  3. r<-10
  4. y<--sqrt(r^2-x^2)
  5. df_cirle<-data.frame(x=c(x,0),y=c(y,5),z=2)
  6. df_cirle$z[nrow(df_cirle)]<-16
  7. ggplot()+
  8. geom_emoji(data=df_cirle,mapping=aes(x=x,y=y,image='1f602',size=z))+
  9. scale_y_continuous(limits=c(-10,12))+
  10. scale_size_area(max_size=0.3)+
  11. labs(x="",y="",title="众星捧月式笑哭")+
  12. guides(size=F)+
  13. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第7张

众星捧月式笑哭

囧式笑器

  1. x<-seq(-10,10,length.out=100)
  2. y<-2/(x^2-2)
  3. shift<-3
  4. x1<-rep(seq(min(x)-shift,max(x)+shift,length.out=150),2)
  5. y1<-c(rep(min(y)-shift,150),rep(max(y)+shift,150))
  6. x2<-c(rep(min(x)-shift,150),rep(max(x)+shift,150))
  7. y2<-rep(seq(min(y)-shift,max(y)+shift,length.out=150),2)
  8. df_orz<-data.frame(x=c(x,x1,x2),y=c(y,y1,y2))
  9. ggplot(df_orz,aes(x=x,y=y))+
  10. geom_emoji(aes(image='1f602'))+
  11. labs(x="",y="",title="囧式笑哭")+
  12. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第8张

囧式笑哭

金拱门式笑哭

  1. #金拱门
  2. x<-seq(0,2*pi,length.out=100)
  3. y<-abs(sin(x))
  4. df_m<-data.frame(x=x,y=y)
  5. ggplot(df_m,aes(x=x,y=y))+
  6. geom_emoji(aes(image='1f602'))+
  7. labs(x="",y="",title="金拱门式笑哭")+
  8. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第9张

金拱门式笑哭

四叶草式笑哭

  1. #四叶草
  2. x<-seq(0,2*pi,length.out=100)
  3. y<-cos(4*x)
  4. df_flower<-data.frame(x=x,y=y)
  5. ggplot(df_flower,aes(x,y))+
  6. geom_line()+
  7. geom_emoji(aes(image='1f602'))+
  8. coord_polar()+
  9. labs(x="",y="",title="四叶草式笑哭")+
  10. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第10张

四叶草式笑哭

万花筒式笑哭

  1. #万花筒式笑哭
  2. get_circle<-function(r){
  3. t<-seq(-r,r,length.out=50*sqrt(r))
  4. x<-rep(t,2)
  5. y<-c(sqrt(r^2-t^2),-sqrt(r^2-t^2))
  6. df<-data.frame(x=x,y=y)
  7. return(df)
  8. }
  9. df_circle<-data.frame(x=NULL,y=NULL)
  10. layer<-11
  11. for(iin1:layer){
  12. df_circle<-rbind(df_circle,get_circle(i))
  13. }
  14. ggplot()+
  15. geom_emoji(data=df_circle,aes(x,y,image='1f602'))+
  16. scale_x_continuous(limits=c(-layer,layer))+
  17. labs(x="",y="",title="万花筒式笑哭")+
  18. theme1

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第11张
11阶万花筒式笑哭,是不是比矩阵不知道高到哪去了

无招胜有招式笑哭

  1. library(ggplot2)
  2. library(ggimage)
  3. showtext::showtext.auto(enable=T)
  4. theme1<-theme(panel.background=element_rect(fill="black",color="black"),plot.background=element_rect(fill="black",color="black"),panel.grid=element_blank(),plot.title=element_text(hjust=0.5,family="SimHei",size=24,color="#FEFEFE"),
  5. axis.text=element_blank(),axis.ticks=element_blank())
  6. #正弦曲线
  7. x<-seq(from=0,to=2*pi,length.out=80)
  8. y<-sin(x)
  9. df_sin<-data.frame(x=x,y=y)
  10. ggplot(df_sin,aes(x,y))+
  11. geom_emoji(aes(image='1f602'))+
  12. labs(x="",y="",title="正弦式笑哭")+
  13. theme1
0

用数据可视化之美逼死密集恐惧症  数据可视化 密集恐惧证 笑哭 第12张
无招胜有招式笑哭

转载请说明出处
知优网 » 用数据可视化之美逼死密集恐惧症

发表评论

您需要后才能发表评论