r - 用不同的变量值给每个面着色

标签 r ggplot2 tidyverse

我有一个如下所示的数据框:

df = data.frame(x = runif(100, 0, 1),
                y = runif(100, 1, 2),
                var1 = runif(100, 0, 1),
                var2 = runif(100, 0, 1),
                var3 = rep(c("a", "b"), 50))

我想在 ggplot2 中绘制一个分面图,在每个分面(散点图)中绘制相同的 xy,但颜色由 var1 的值决定var2var3。在这种情况下,只有 3 个方面,每个着色列一个。

这是怎么做到的?

最佳答案

plots = lapply(3:5, function(i){
    dt = df[,c(1, 2, i)]
    ggplot(data = dt, aes_string(x = names(dt)[1],
                                 y = names(dt)[2],
                                 color = names(dt[3]))) +
        geom_point()
})
library(gridExtra)
do.call(function(...){
    grid.arrange (..., ncol = 3)},
    plots)

Rplot

关于r - 用不同的变量值给每个面着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364006/

相关文章:

r - 在R中使用tm包来阻止单词不能正常工作?

r - 将 Rshiny 部署到 IBM Cloud 服务器

r - 在 ggplot 中,我不想标记值为零的 geom_col 条,而只标记具有值的条(它们都是正数)

当参数是 dplyr 中的字符串时,将 group_by_ 替换为 group_by

r - 计算数据,按年份和按区域划分的R

r - 在 R 中保留字母数字字符串的最后 9 位

R [ Shiny ] : Error trying to output reactive model summary

r - ggplot2 stat_function 具有计算参数的 facet_grid 内不同数据子集

r - 将 ggplot map 与 coord_equal() 对齐

删除 data.frame 中包含其他列的行