gpt4 book ai didi

r - 如何使用 ggplot2 在同一个图形上叠加多个 stat_contour 图?

转载 作者:行者123 更新时间:2023-12-04 10:54:42 26 4
gpt4 key购买 nike

是否可以使用来自不同数据帧的数据覆盖来自 ggplot2 的多个 stat_contour 图?

我已经阅读了覆盖不同几何体的解决方案,但为此我特别想使用 stat_contour。

两个数据集的 X 和 Y 变量相同。要使用的一些示例数据:

# some sample data
require(ggplot2)
require(reshape2)

v1 <- melt(volcano)
v2 <- v1
v2$value <- v2$value*1.5

所以单独绘制每个作品:
ggplot(v1, aes(x = Var1, y = Var2, z = value)) +
+ stat_contour(aes(color = ..level..)) + scale_colour_gradient(low = "white", high="#ff6666")

ggplot(v2, aes(x = Var1, y = Var2, z = value)) +
+ stat_contour(aes(color = ..level..)) + scale_colour_gradient(low = "white", high="#A1CD3A")

有什么方法可以将这些密度图叠加在同一张图上?

我曾尝试创建一个因子变量并为每个集合分配一个不同的值,然后将它们堆叠起来,但我收到一个错误,因为每个 X 和 Y(此处为 Var 1 和 Var2)都有多个值。

感谢您的帮助!

最佳答案

以下是在 ggplot2 中叠加两个等高线数据集的几个选项。一个重要的警告(如@Drew Steen 所述)是您不能有两个单独的 colour在同一个图中标度。

# Add category column to data.frames, then combine.
v1$category = "A"
v2$category = "B"
v3 = rbind(v1, v2)

p1 = ggplot(v3, aes(x=Var1, y=Var2, z=value, colour=category)) +
stat_contour(binwidth=10) +
theme(panel.background=element_rect(fill="grey90")) +
theme(panel.grid=element_blank()) +
labs(title="Plot 1")

p2 = ggplot(v3, aes(x=Var1, y=Var2, z=value, colour=category)) +
stat_contour(aes(alpha=..level..), binwidth=10) +
theme(panel.background=element_rect(fill="white")) +
theme(panel.grid=element_blank()) +
labs(title="Plot 2")

p3 = ggplot(v3, aes(x=Var1, y=Var2, z=value, group=category)) +
stat_contour(aes(color=..level..), binwidth=10) +
scale_colour_gradient(low="white", high="#A1CD3A") +
theme(panel.background=element_rect(fill="grey50")) +
theme(panel.grid=element_blank()) +
labs(title="Plot 3")

p4 = ggplot(v3, aes(x=Var1, y=Var2, z=value, linetype=category)) +
stat_contour(aes(color=..level..), binwidth=10) +
scale_colour_gradient(low="white", high="#A1CD3A") +
theme(panel.background=element_rect(fill="grey50")) +
theme(panel.grid=element_blank()) +
labs(title="Plot 4")

library(gridExtra)
ggsave(filename="plots.png", height=8, width=10,
plot=arrangeGrob(p1, p2, p3, p4, nrow=2, ncol=2))
  • 绘图 1:使用 aes(colour=category) 以不同的纯色绘制两个图层
  • 图 2:显示 ..level..使用 alpha 透明度。具有两个独立颜色渐变的模拟物。
  • 绘图 3:以相同的梯度绘制两个层。使用 aes(group=category) 保持不同的图层
  • 图 4:使用单色渐变,但使用线型区分图层。

  • enter image description here

    关于r - 如何使用 ggplot2 在同一个图形上叠加多个 stat_contour 图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240881/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com