R:将两个等高线图组合在一起

Posted

技术标签:

【中文标题】R:将两个等高线图组合在一起【英文标题】:R: Combining Two Contour Plots Together 【发布时间】:2022-01-12 08:34:50 【问题描述】:

我正在使用 R 编程语言。我做了以下两个图:

library(ggplot2)
library(cowplot)

data_1 = data.frame(a = rnorm(100,10,10), b = rnorm(100,10,10), c = as.factor("one"))


data_2 = data.frame(a = rnorm(100,10,10), b = rnorm(100,10,10), c = as.factor("two"))


p1 = ggplot(data_1, aes(x = a, y = 
          b)) +
        geom_density_2d_filled() + 
        ggtitle("Plot 1")

p2 = ggplot(data_2, aes(x = a, y = 
          b)) +
        geom_density_2d_filled() + 
        ggtitle("Plot 2")

plot_grid(p1, p2)

我的问题:有没有办法将这两个图合并到一个图中,这样看起来不会“太乱”?

我尝试了以下代码:

ggplot(final, aes(x = a, y = 
                      b, colour = c)) +
    geom_density_2d_filled() + 
    ggtitle("Combined")

但这很难阅读。

有谁知道如何做到这一点?

谢谢!

【问题讨论】:

您的意思是仅结合图例还是同时结合分布? @Mael:谢谢你的回复!传说可以合并吗?我不知道该怎么做 - 我正在寻找一种方法,这样有人会知道这是两个不同物种的两个不同地块(例如,大象与老虎的身高/体重) data_2 = data.frame(a = rnorm(100,10,10), b = rnorm(100,10,10), c = as.factor("two")) 这可以是改为 data_2 = data.frame(a = rnorm(100,100,10), b = rnorm(100,100,10), c = as.factor("two")) 所以看起来更明显 我猜你有几个选项可以让它更具可读性。如果不是超级重要,您可以删除 geom_density_2d_filled 函数中的图例 (show.legend = F)。合并这两个图可能不是一个好的选择,因为它们几乎在同一个地方,所以它们重叠 “太乱”到底是什么意思?你如何衡量“阅读难度”?如果您想要一般的数据可视化建议,Cross Validated 更适合您。目前这似乎不是一个特定的、非基于意见的编程问题。 【参考方案1】:

你的意思是什么。像这样?在这里,等高线图用于重叠多个 2d 内核密度:

library(ggplot2)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

set.seed(1337)
data_1 = data.frame(a = rnorm(100,10,10), b = rnorm(100,10,10), c = as.factor("one"))
data_2 = data.frame(a = rnorm(100,10,10), b = rnorm(100,10,10), c = as.factor("two"))

bind_rows(
  data_1,
  data_2
) %>%
  ggplot(aes(a, b, color = c)) +
    geom_density2d()

由reprex package 创建于 2021-12-07 (v2.0.1)

【讨论】:

以上是关于R:将两个等高线图组合在一起的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 绘制带有等高线图叠加的 3D 曲面图

如何在稀疏点之间插入数据以在 R & plotly 中绘制等高线图

R语言plotly可视化:plotly可视化二维直方图等高线图在等高线上添加数值标签自定义标签字体色彩设置鼠标悬浮显示效果(Styled 2D Histogram Contour)

R语言plotly可视化:plotly可视化二维直方图二维直方图是二元分布的直方图可视化二维直方图等高线图在等高线上添加数值标签自定义标签字体色彩设置鼠标悬浮显示效果添加边缘直方图

R语言plotly可视化:plotly可视化二维直方图等高线图(Basic 2D Histogram Contour)

如何用excel做等高线图