R使用ggplot2绘制等高线图/等距离图

等高线其实是可视化中非常常见的一种数据表现方式,不仅仅用于地理学,多种反应空间平面下属性梯度变化的情况均可以很好的使用。建议稍微有ggplot2基础,不然我推荐用excel其实也能搞定。

1. R base的函数contour()

很简单,数据的数据需要有三列x,y,属性值(z值/表达量/距离等)


效果示意

操作简单,但是图也同样简单,所以也不大符合我们的预期

2. ggplot2绘制等高线图

通过ggplot2绘制需要搭载一个ggisoband的包
安装:

devtools::install_github("clauswilke/ggisoband")

使用:

library(ggplot2)
library(ggisoband)
# 数据 同样就是一个x,y, z/其他属性的数据框
volcano3d <- reshape2::melt(volcano)
names(volcano3d) <- c("x", "y", "z")
# 可视化1
ggplot(volcano3d, aes(x, y, z = z)) +
  geom_isobands(aes(color = stat(zmin)), fill = NA) +
  scale_color_viridis_c() +
  coord_cartesian(expand = FALSE) +
  theme_bw()
# 可视化2
ggplot(volcano3d, aes(x, y, z = z)) +
  geom_isobands(aes(fill = stat(zmin)), color = NA) +
  scale_fill_viridis_c(guide = "legend") +
  coord_cartesian(expand = FALSE) +
  theme_bw()

效果展示:

可视化1效果

可视化2效果

包的信息具体可以参考:https://github.com/clauswilke/ggisoband
有其他问题欢迎评论区交流~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容