局部地图绘制真的太简单,推荐学习这个工具...

2024-07-30 14:03:27 浏览数 (2)

前言

我们的数据可视化课程已经上线啦!!目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!

我们第一个数据可视化交流圈子也已经上线了,主要以我的第一本书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供「课堂式」教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

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

「ggmagnify」-局部图形绘制超好用工具~

最近,又有同学私信我咨询统计图形中要想显示局部部分,怎么快速绘制呢?

今天赶紧给大家推荐一个我常用的具体子图显示绘制工具-「ggmagnify」

  • ggmagnify包介绍

ggmagnify 是一个R语言中用于绘制放大镜效果的数据可视化工具,它基于ggplot2包,可以用于放大图表中的特定区域,并在放大的区域周围添加一个放大镜效果的框,以便更清晰地展示细节,特别是在数据密集的图表中。

  • ggmagnify包案例
代码语言:javascript复制
library(ggplot2)
library(ggmagnify)

ggp <- ggplot(dv, aes(Position, NegLogP))   
  geom_point(color = "darkblue", alpha = 0.8, size = 0.8)  
  labs(title = "GWAS p-values for cognitive function",
       subtitle = "Davies et al. (2018).", y = "-log(p)")

from <- c(xmin = 9.75e7, xmax = 9.95e7, ymin = 16, ymax = 28)
# Names xmin, xmax, ymin, ymax are optional:
to <- c(2e8 - 2e7, 2e8   2e7,10, 26)

ggp   geom_magnify(from = from, to = to)
代码语言:javascript复制
ggpi <- ggplot(iris, aes(Sepal.Width, Sepal.Length, colour = Species))  
              geom_point()   xlim(c(1.5, 6))

ggpi   geom_magnify(aes(from = Species == "setosa" & Sepal.Length < 5), 
                    to = c(4, 6, 6, 7.5))
代码语言:javascript复制

usa <- sf::st_as_sf(maps::map("state", fill=TRUE, plot =FALSE))

ggpm <- ggplot(usa)  
          geom_sf(aes(fill = ID == "texas"), colour = "grey20")  
          coord_sf(default_crs = sf::st_crs(4326), ylim = c(10, 50))   
          theme(legend.position = "none")  
          scale_fill_manual(values = c("TRUE" = "red", "FALSE" = "steelblue4"))


ggpm   geom_magnify(aes(from = ID == "texas"),
                    to = c(-125, -98, 10, 30), 
                    shadow = TRUE, linewidth = 1, colour = "orange2",
                    shape = "outline", 
                    aspect = "fixed", 
                    expand = 0) 
代码语言:javascript复制

data <- data.frame(
  x = runif(4000), 
  y = runif(4000)
)
ggm_unif <- ggplot(data, aes(x, y))  
            coord_cartesian(expand = FALSE)  
            geom_density2d_filled(bins = 50, linewidth = 0, n = 200)  
            geom_point(color='white', alpha = .5, size = .5)   
            theme(legend.position = "none")


ggm_unif   
  geom_magnify(from = c(0.05, 0.15, 0.05, 0.15), to = c(0.2, 0.4, 0.2, 0.4), 
               colour = "white", proj.linetype = 1, linewidth = 0.6)  
  geom_magnify(from = c(0.25, 0.35, 0.25, 0.35), to = c(0.45, 0.85, 0.45, 0.85), 
               expand = 0, colour ="white", proj.linetype = 1)

跟多关于ggmagnify包的绘图绘图函数和使用语法,可参考ggmagnify包官网[1]

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

可视化学习圈子是书籍「科研论文配图绘制指南-基于Python」一书的学下圈子:主要通过以下几个方面,给大家带来比纸质书籍更丰富的学习内容:

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

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

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

参考资料

[1]

ggmagnify包官网: https://hughjonesd.github.io/ggmagnify/。

0 人点赞