mar*_*arc 1 r color-key ggplot2
我想使用两种不同的色标绘制点两次:
在此示例中,5 个点被淹没,颜色被映射到两个协变量(cov1 和 cov2):cov1 和 cov2 分别采用不同的尺度 1 到 5 和 0.01 到 0.05。
我希望有 2 个独立的颜色键,一个用于 cov1,一个用于 cov2,有点如下图所示。然而,在下图中,我使用 'color = cov1' end 'fill = cov2' 来带来另一个颜色键......
任何帮助,将不胜感激。
gg1 <- ggplot(data = df1 , aes( x = x , y = y ) ) +
geom_point( aes(x = x , y = y - 1 , color = cov1 )) +
geom_point( aes(x = x , y = y + 1 , color = cov2 )) +
scale_y_continuous(limits = c(-3,3))
gg2 <- ggplot(data = df1 , aes( x = x , y = y ) ) +
geom_point( aes(x = x , y = y - 1 , color = cov1 )) +
geom_point( aes(x = x , y = y + 1 , fill = cov2 ), pch = 21 ) +
scale_y_continuous(limits = c(-3,3))
grid.arrange( gg1 , gg2 , ncol = 2 )
Run Code Online (Sandbox Code Playgroud)
小智 6
基本上ggplot2如果我没记错的话是不可能的。但这个存储库可能是您的答案:
https://github.com/eliocamp/ggnewscale
或这个(在上一个的描述中提到):
https://github.com/clauswilke/relayer
ggplot2我已经很久没有使用过,所以对这两个不太熟悉,但我记得我至少用过其中一个。
我刚刚写了一个快速示例来检查它是否有效:
d1 <- data.frame(x=1:5, y=1)
d2 <- data.frame(x=1:5, y=2)
library(ggplot2)
library(ggnewscale)
ggplot() +
geom_point(data = d1, aes(x=x, y=y, color = x)) +
scale_color_continuous(low = "#0000aa", high="#ffffff") +
new_scale_color() +
geom_point(data = d2, aes(x=x, y=y, color = x)) +
scale_color_continuous(low = "#aa0000", high="#00aa00")
Run Code Online (Sandbox Code Playgroud)

它似乎按你想要的方式工作。
| 归档时间: |
|
| 查看次数: |
494 次 |
| 最近记录: |