美文网首页
R可视化之美之科研绘图-17.南丁格尔玫瑰图

R可视化之美之科研绘图-17.南丁格尔玫瑰图

作者: 科研私家菜 | 来源:发表于2022-07-29 15:00 被阅读0次

    本内容为【科研私家菜】R可视化之美之科研绘图系列课程

    快来收藏关注【科研私家菜】


    01 单一数据南丁格尔玫瑰图

    南丁格尔玫瑰图是弗罗伦斯·南丁格尔所发明的。又名为极区图。是一种圆形的直方图。 南丁格尔自己常昵称这类图为鸡冠花图(coxcomb),并且用以表达军医院季节性的死亡率。
    南丁格尔玫瑰图将柱图转化为更美观的饼图形式,是极坐标化的柱图,其夸大了数据之间差异的视觉效果,适合展示数据原本差异小的数据。
    南丁格尔玫瑰图长得像饼图又不是饼图,这种有着极坐标的统计图有着一个美丽的名字—南丁格尔玫瑰图。南丁格尔玫瑰图(Nightingale rose diagram)又名鸡冠花图(Coxcomb Chart)或极坐标区域图(Polar area diagram)。
    南丁格尔玫瑰图是将柱图转化为更美观饼图形式,是极坐标化的柱图。不同于饼图用角度表现数值或占比,南丁格尔玫瑰图使用扇形的半径表示数据的大小,各扇形的角度则保持一致。

    library(ggplot2)
    mydata <- data.frame( a=c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"),
                          b=c(50, 60, 70, 20,90,110,30))
    myAngle <-seq(-20,-340,length.out =7)
    
    ggplot(mydata) +
      geom_bar(aes(x=a, y=b),width = 1,stat="identity",
               colour = "black",fill="#F8766D") +
      geom_text(aes(x=a,y = b-8,label = b),color="white") +
      coord_polar(theta = "x",start=0) +
      ylim(c(0,120))+
      theme_light()+
      theme( panel.background = element_blank(),
             panel.grid.major = element_line(colour = "grey80",size=.25),
             axis.text.y = element_text(size = 12,colour="black"),
             axis.line.y = element_line(size=0.25),
             axis.text.x=element_text(size = 13,colour="black",angle = myAngle))
    
    

    效果如下:


    02 多数据南丁格尔玫瑰图

    diamonds<-cbind(diamonds,Cou=rep(1,nrow(diamonds)))
    sum_clarity<-aggregate(Cou~clarity,diamonds,sum)
    sort_clarity<-arrange(sum_clarity,desc(Cou))
    diamonds$clarity<- factor(diamonds$clarity, levels = sort_clarity$clarity)
    myAngle <-seq(-20,-340,length.out = 8)
    
    
    ggplot(diamonds,aes(x=clarity,fill=color))+
      geom_bar(width=1.0,colour="black",size=0.25)+
      coord_polar(theta = "x",start=0)+
      scale_fill_brewer(palette="GnBu")+
      guides(fill=guide_legend(reverse=TRUE,title=NULL))+
      ylim(c(0,12000))+
      theme_light()+
      theme( panel.background = element_blank(),
             panel.grid.major = element_line(colour = "grey80",size=.25),
             axis.text.y = element_text(size = 12,colour="black"),
             axis.line.y = element_line(size=0.25),
             axis.text.x=element_text(size = 13,colour="black",angle = myAngle))
    
    

    效果如下:

    
    ggplot(diamonds,aes(x=clarity,fill=color))+
      geom_bar(width=1.0,colour="black",size=0.25)+
      coord_polar(theta = "x",start=0)+
      scale_fill_brewer(palette="Reds")+
      guides(fill=guide_legend(reverse=TRUE,title="Color"))+
      ylim(c(-2000,12000))+
      theme_light()+
      theme( panel.background = element_blank(),
             panel.grid.major = element_line(colour = "grey80",size=.25),
             axis.text.y = element_text(size = 12,colour="black"),
             axis.line.y = element_line(size=0.25),
             axis.text.x=element_text(size = 13,colour="black",angle = myAngle))
    
    
    

    效果如下:



    参考资料

    《R语言数据可视化之美》

    关注R小盐,关注科研私家菜(溦❤工众號: SciPrivate),有问题请联系R小盐。让我们一起来学习 R可视化之美之科研绘图

    相关文章

      网友评论

          本文标题:R可视化之美之科研绘图-17.南丁格尔玫瑰图

          本文链接:https://www.haomeiwen.com/subject/ipvpbrtx.html