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

本内容为【科研私家菜】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.高密度散点图)