比Python绘制散点密度图还方便?!怎么选?当然全都要...

2023-11-22 14:56:09 浏览数 (1)

前言

今天是我的可视化课程上线的第231天,目前学员416人,每篇原创公众号都会记录这个人数,用来督促和激励我的原创内容。目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。

今天是我的可视化学习社群上线的第11天,目前学员116人,可视化学习社区以我的书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供课堂式教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。

R语言散点密度图快速绘制

昨天给大家推荐了Python语言绘制散点密度图的可视化工具-mpl-scatter-density,很多同学都表示使用起来非常方便。但是也有同学一直使用R语言进行可视化绘图,所以今天这篇推文就给大家推荐R语言快速绘制散点密度图的方法。

(ps:Python和R我全都要)

R语言中虽然可以使用ggplot2中的geom_density_2d()函数完成散点密度图的绘制,但在参数的设置上稍显复杂,所以我们今天给大家推荐一个非常好用的拓展工具包-「ggpointdensity」

  • 简单介绍

ggpointdensity是一个R语言中用于创建散点密度图的可视化工具包。它提供了一种直观的方式来显示数据的分布情况,特别适用于大量数据的可视化。

使用ggpointdensity包,你可以轻松地创建具有以下特点的点密度图:

  1. 显示数据的分布情况:通过点的密度来展示数据的分布情况,可以更清晰地看到数据的聚集和分布情况。
  2. 支持多变量分布:可以同时展示多个变量的分布情况,帮助你更好地理解不同变量之间的关系。
  3. 自定义图形样式:可以根据需要自定义点的形状、颜色、大小等参数,使得图形更具吸引力和可读性。
  4. 与ggplot2无缝集成:ggpointdensity包是基于ggplot2的,因此可以与ggplot2的其他功能无缝集成,如添加标签、调整坐标轴等。
  • 安装方式
代码语言:javascript复制
install.packages("ggpointdensity")

# Alternatively, you can install the latest
# development version from GitHub:
if (!requireNamespace("devtools", quietly = TRUE))
    install.packages("devtools")
devtools::install_github("LKremer/ggpointdensity")
  • 可视化案例
代码语言:javascript复制
library(ggplot2)
library(dplyr)
library(viridis)
library(ggpointdensity)

dat <- bind_rows(
  tibble(x = rnorm(7000, sd = 1),
         y = rnorm(7000, sd = 10),
         group = "foo"),
  tibble(x = rnorm(3000, mean = 1, sd = .5),
         y = rnorm(3000, mean = 7, sd = 5),
         group = "bar"))

ggplot(data = dat, mapping = aes(x = x, y = y))  
  geom_pointdensity()  
  scale_color_viridis()

geom_pointdensity()案例01

还可以通过修改geom_pointdensity()函数中的adjust参数,实现不同样式的散点密度图效果:

代码语言:javascript复制
ggplot(data = dat, mapping = aes(x = x, y = y))  
  geom_pointdensity(adjust = .1)  
  scale_color_viridis()
 
ggplot(data = dat, mapping = aes(x = x, y = y))  
  geom_pointdensity(adjust = 4)  
  scale_color_viridis()

设置adjust参数效果

当然,分面绘图和修改散点的形状等操作,都是可以完成的,可视化效果如下:

facets分面

修改散点形状

更多关于ggpointdensity包的用法和案例,可参考ggpointdensity包官网[1]

可视化学习圈子是干什么的?

科研论文配图书籍学习圈子主要通过以下几个方面,给大家带来比纸质书籍更丰富的学习内容:

  • 直播教学,和读者零距离互动交流
  • 及时修正勘误和定期新增绘制知识点
  • 拓展衍生,绘图知识点远超书籍本身
  • 直播视频 拓展资料 答疑,学习更高效

「PS」:我们直播教学内容为课堂式教学,原作者带着大家对书籍一章、一节、一页的进行教学。而且直播的视频都会通过剪辑后整理成课程,圈子中的同学可以免费、反复观看。当然,新增内容和定期答疑,直播也是如此。

  • 为何会有这个书籍学习社群? 除了上面介绍到的原因之外,无门槛的微信群难免会鱼龙混杂,问题和质量都无法得到保证,而且一些关键问题经常被淹没,且没有沉淀价值。
  • 随着添加我微信的人日益增多,向我提问的人也越来越多,随便回答一下就太不负责任了;不回答也不是很好;如果都仔细回答,我也有自己的工作并且确实很忙,真的有点心有余而力不足!所以我才会建立这么一个渠道来沉淀我的可视化技巧和分享经验,以及给大家提供一个坚持学习的平台。

参考资料

[1]

ggpointdensity包官网: https://github.com/LKremer/ggpointdensity。

0 人点赞