小果带你认识R数据可视化之ggplot二维密度图






小果带你认识R数据可视化之ggplot二维密度图

小图  生信果  2024-02-07 10:18:21

 小果在之前的文章中详细讲述了ggplot密度图的内容,并通过举例的方式带大家一起绘制了调整不同参数后的图片,那么今天小果要再进阶一下向小伙伴们介绍的是ggplot二维密度图的一些相关内容。在介绍之前小果还是先强烈推荐一下自己的工具平台

(http://www.biocloudservice.com/home.html),
那么接下来就让小果带领大家一起来看看关于ggplot二维密度图的相关内容吧。
ggplot的二维密度图是一种用于可视化两个变量之间的分布和关系的图表类型。它通过在二维平面上绘制密度等高线或填充颜色来表示数据点的分布情况。
在ggplot中创建二维密度图通常需要使用geom_density_2d或geom_density_2d_filled函数。这些函数将数据点转换为二维核密度估计,并在图表中显示其分布。
创建二维密度图的一般步骤如下:
1.创建基础图表对象:使用ggplot函数创建一个基础图表对象,并通过指定数据集和映射变量来设置数据的基本设置。
2.添加二维密度图的图层:使用geom_density_2d或geom_density_2d_filled函数来添加二维密度图的图层。这些函数会根据数据点的分布绘制等高线或填充颜色。
3.自定义图表外观:可以使用其他函数和参数来自定义图表的外观,如添加标题、调整坐标轴、修改颜色映射等。    
通过这些步骤,你可以创建一个详细的二维密度图。它可以帮助你更好地理解两个变量之间的分布情况和关系。你可以根据需要调整图表的各个方面,如调整颜色映射、修改填充样式、添加图例等,以获得最佳的可视化效果。
那又到了小果一天一度的举例环节啦:
> p <- ggplot(faithful, aes(x = waiting, y = eruptions)) ++   geom_point() ++   ylim(0.5, 8) ++   xlim(20, 100) ++   labs(title = "Xiao guo", x = "等待时间", y = "喷发时间")> p + geom_density_2d() 
                    
我们可以给上图 添加线条与填充颜色,如下所示。
> p + geom_density_2d_filled(alpha = 0.5) ++   geom_density_2d(size = 0.25, colour = "pink")
          
当然我们也可以进行分组的操作。
> d <- sample_n(diamonds, 500) %>%+   ggplot(aes(x, y))> d + geom_density_2d(aes(colour = cut))
          
我们还可以进行分面的操作。
> d + geom_density_2d_filled() + +   facet_wrap(vars(cut)) 
   
小果在之前的文章中已经详细讲述了一维密度图,所以在这里小果将这两种图片进行结合。将二维直方图和密度图与一维统计分布图结合起来可以提供更全面的数据分布信息。这种组合图表可以同时显示变量的边际分布和联合分布,有助于更好地理解数据的特征和关系。一维统计分布图通常使用直方图或核密度估计图来显示单个变量的分布情况。直方图将数据分成若干个区间,并显示每个区间中数据的频数或频率。核密度估计图则通过在每个数据点周围创建一个核函数来估计数据的概率密度分布。
这种组合图表常用于探索性数据分析和数据可视化,可以帮助我们发现数据中的模式、趋势和异常值。同时,它也可以用于比较不同组或类别之间的分布差异,以及变量之间的相关性。在R中,可以使用ggplot2包来创建这种组合图表。通过使用geom_histogram、geom_density和geom_density_2d等函数,可以将一维统计分布图、二维直方图和二维密度图结合在一起,并使用合适的参数和配色方案来自定义图表的外观。
小果举个简单的例子:
> N <- 1000> df <- tibble(+   x1 = rnorm(n = N, mean = 2),+   x2 = rnorm(n = N, mean = 2),+   y1 = rnorm(n = N, mean = 2),+   y2 = rnorm(n = N, mean = 2)+ )> top_hist <- ggplot(df, aes(y1)) ++   geom_density(fill = "pink", colour = "black") ++   theme_void() ++   labs(title = "Xiao guo")        > right_hist <- ggplot(df, aes(y2)) ++   geom_density(fill = "pink", colour = "black") ++   coord_flip() ++   theme_void()> center <- ggplot(df, aes(y1, y2)) ++   geom_density2d(colour = "black") ++   geom_density2d_filled() ++   scale_fill_brewer(palette = "Set2") ++   theme(+     panel.background=element_rect(fill="white",colour="black",size=0.25),+     axis.line=element_line(colour="black",size=0.25),+     axis.title=element_text(size=13,face="plain",color="black"),+     axis.text = element_text(size=12,face="plain",color="black"),+     legend.position = "none"+   )> p1 <- plot_grid(top_hist, center, align = "v",+                 nrow = 2, rel_heights = c(1, 4))> p2 <- plot_grid(NULL, right_hist, align = "v",+                 nrow = 2, rel_heights = c(1, 4))> plot_grid(p1, p2, ncol = 2, +           rel_widths = c(4, 1))> glist <- list(top_hist, center, right_hist)
 
好啦,今天小果的分享就到这里啦,不知道小伙伴们收获了多少知识呢,小果在后面的文章中还会继续更新R数据可视化的知识,小伙伴们记得随时关注小果哦,最后提醒小伙伴们一定记得要关注小果的工具平台呀
(http://www.biocloudservice.com/home.html),
小伙伴们明天再会啦。       

小果还提供思路设计、定制生信分析、文献思路复现;有需要的小伙伴欢迎直接扫码咨询小果,竭诚为您的科研助力!


定制生信分析

服务器租赁

扫码咨询小果


往期回顾

01

1024G存储的生信服务器,两人成团,1人免单!

02

单个数据库用腻了?多数据库“组合拳”带你打开免疫浸润新思路!

03

孟德尔随机化的准备工作,GWAS数据的网站下载方法

04

跟着小果学复现-手把手带你拿下IF=46.9Nature 级别的主成分分析(PCA)图!!