繁体   English   中英

根据列值在 R 中创建多个图,但基于第二列的颜色图

[英]Create multiple plots in R based on column value but colour plots based on a second column

我想使用 ggplot2 在折线图中通过 VarB 对 plot VarA 和 VarB 进行计算,但我想要一个单独的 plot 的每个唯一 ID 值,并通过 VarD 改变图形的形状。

我可以使用以下代码创建单独的图:

plot_list <- lapply(split(data.df, data.df$ID), function(x)
    
{
  ggplot(x, aes(x=VarA, y=VarB)) + 
    geom_point()+
    theme_bw()
})

但想根据另一个变量 (VarC) 为点着色,并根据最终变量 (VarD) 更改点的形状。

变量 C 和 D 都是具有 2 个水平的阶乘。

ggplot 包含颜色和点形状的美学,将美学调用更改为:

aes(x=VarA,
    y=VarB,
    colour=varC,
    shape=varD)

对于某些几何图形,使用美学填充而不是颜色,如果包含在不使用它的几何图形中,形状会导致问题,但这应该适用于 geom_point。

将 facet_wrap 添加到 plot 以分隔每个 ID 值的图形:

+facet_wrap(~ID)
plot_list <- lapply(split(data.df.new, data.df.new$Sheep_ID), function(x)
  
{
  ggplot(x, aes(x=VarA, y=VarB, colour = VarC)) + 
    geom_point()+
    theme_bw() +
    scale_color_manual(values = c("R" = "blue", "E" = "pink")) + # Add in specific colour for each factor level. 
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM