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
有其他问题欢迎评论区交流~

你可能感兴趣的:(R使用ggplot2绘制等高线图/等距离图)