美文网首页
R可视化之美之科研绘图-25.高密度散点图

R可视化之美之科研绘图-25.高密度散点图

作者: 科研私家菜 | 来源:发表于2022-08-30 19:15 被阅读0次

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

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


    01 高密度散点图

    当数据点重叠很严重时,用散点图来观察变量关系非常不明显,下面构造10 000个观测点,显示它们分布在两个重叠的数据群中的情况:
    10 000个观测点的散点图,严重的重叠导致很难识别哪里数据点的密度最大,数据点的重叠导致识别x与y间的关系变得异常困难,R提供了一些解决办法。你可以使用封箱、颜色和透明度来指明图中任意点上重叠点的数目。smoothScatter()函数可利用核密度估计生成用颜色密度来表示点分布的散点图:
    with(mydata, smoothScatter(x, y, main="Scatter Plot Colored by Smoothed Densities"))

    
    set.seed(1234)
    
    n <- 10000
    
    c1 <- matrix(rnorm(n, mean=0, sd=.5), ncol=2)
    
    c2 <- matrix(rnorm(n, mean=3, sd=2), ncol=2)
    
    mydata <- rbind(c1, c2)
    
    mydata <- as.data.frame(mydata)
    
    names(mydata) <- c("x", "y")
    
    with(mydata, plot(x, y, pch=19, main="Scatter Plot with 10,000 Observations"))
    
    

    效果如下:



    02 带透明度设置的散点图

    library(ggplot2)
    library(RColorBrewer)  
    
    mydata<-read.csv("HighDensity_Scatter_Data.csv",stringsAsFactors=FALSE)
    
    ggplot(data = mydata, aes(x,y)) +
      geom_point( colour="black",alpha=0.1)+
      labs(x = "Axis X",y="Axis Y")+
      theme(
        text=element_text(size=15,color="black"),
        plot.title=element_text(size=15,family="myfont",face="bold.italic",hjust=.5,color="black"),
        legend.position="none"
      )
    

    效果如下:

    03 kmeans聚类的散点图

    
    kmeansResult<- kmeans(mydata, 2, nstart = 20)
    
    mydata$cluster <- as.factor(kmeansResult$cluster)
    
    ggplot(data = mydata, aes(x,y,color=cluster)) +
      geom_point( alpha=0.2)+
      scale_color_manual(values=c("#00AFBB",  "#FC4E07"))+
      labs(x = "Axis X",y="Axis Y")+
      theme(
        text=element_text(size=15,color="black"),
        plot.title=element_text(size=15,family="myfont",face="bold.italic",color="black"),
        legend.background=element_blank(),
        legend.position=c(0.85,0.15)
      )
    
    

    效果如下:

    04 带椭圆标定的聚类散点图

    
    ggplot(data = mydata, aes(x,y,color=cluster)) +
      geom_point (alpha=0.2)+
      # 绘制透明度为0.2 的散点图
      stat_ellipse(aes(x=x,y=y,fill= cluster), geom="polygon", level=0.95, alpha=0.2) +
      #绘制椭圆标定不同类别,如果省略该语句,则绘制图3-1-7(c)
      scale_color_manual(values=c("#00AFBB","#FC4E07")) +#使用不同颜色标定不同数据类别
      scale_fill_manual(values=c("#00AFBB","#FC4E07"))+  #使用不同颜色标定不同椭类别
      labs(x = "Axis X",y="Axis Y")+
      theme(
        text=element_text(size=15,color="black"),
        plot.title=element_text(size=15,family="myfont",face="bold.italic",color="black"),
        legend.background=element_blank(),
        legend.position=c(0.85,0.15)
      )
    
    

    效果如下:


    参考资料

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

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

    相关文章

      网友评论

          本文标题:R可视化之美之科研绘图-25.高密度散点图

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