1个变量的分布可以用hist,两个变量呢?可以用等高线图、登高颜色图。
1. 效果图
2. 源代码
# 2d概率密度图
library(ggplot2)
p1=ggplot(faithful, aes(eruptions, waiting) )plots=list()#1. 散点图
plots[[1]]=p1 + geom_point(colour = "black") + theme_bw()+ggtitle("1")# 等高线图
plots[[2]]=p1 + stat_density2d(color = "black", size = 1) + theme_bw()+ggtitle("2")# 散点图+等高线
plots[[3]]=p1 +stat_density2d(color = "black", size = 1) + geom_point(colour = "black") + theme_bw()+ggtitle("3")# 将密度映射到等高线
plots[[4]]=p1 +#stat_density2d(aes(color = ..level..), size = 1.5) + stat_density2d(aes(color = after_stat(level) ), linewidth = 1.5) + geom_point(colour = "black") + scale_color_distiller(palette = "RdYlGn") + theme_bw()+ggtitle("4")#2. geom = "tile" 绘制颜色表示的密度图
plots[[5]]=p1 +stat_density2d(geom = "tile", aes(fill = ..density..), contour = FALSE) + scale_fill_distiller(palette = "RdYlGn") + theme_classic()+ggtitle("5")# geom = "raster" 同上,栅格化
plots[[6]]=p1 +stat_density2d(geom = "raster", aes(fill = ..density..), contour = FALSE) + scale_fill_distiller(palette = "RdYlGn") + theme_bw()+ggtitle("6")# 对带宽进行调整
plots[[7]]=p1 +stat_density2d(geom = "raster", aes(fill = ..density..), contour = FALSE, h = c(1, 5)) + # 修改带宽,h参数传参给 kde2d()产生密度估计 >?kde2dscale_fill_distiller(palette = "RdYlGn") + theme_bw()+ggtitle("7")
#h Bandwidth (vector of length two). If NULL, estimated using MASS::bandwidth.nrd().# 3. 综合
plots[[8]]=p1 +stat_density2d(geom = "raster", aes(fill = ..density..), contour = FALSE) + stat_density2d(color = "black", size = 0.7) + geom_point(colour = "black", size=1) + scale_fill_distiller(palette = "RdYlGn") + theme_classic()+ggtitle("8")# 细节调整
plots[[9]]=p1 +stat_density2d(geom = "raster", aes(fill = ..density..), contour = F) + #stat_density2d(color = "black", size = 0.6, bins=8) + stat_density2d(color = "black", size = 0.6, binwidth=0.0035) + geom_point(colour = "black", size=0.8) + scale_fill_gradient2(low = "navy", mid = "#FFF200", midpoint = 0.012,high="#ED1C24") +theme_classic()+ggtitle("9")# 拼接图
patchwork::wrap_plots(plots, ncol = 3)
Ref
- https://r-graphics.org/RECIPE-DISTRIBUTION-DENSITY2D.html
- https://r-graphics.org/RECIPE-DISTRIBUTION-BASIC-DENSITY.html