【问题标题】:Colouring plot in R by multiple factorR中的多因素着色图
【发布时间】:2017-07-04 05:56:58
【问题描述】:

我有以下df 数据集:

  Subject Age                School TimeOfTest Score1 Score2
1       1  12 Aletta-Jacobs-College    Morning     78    180
2       2  11 Aletta-Jacobs-College  Afternoon     81    181
3       3  12 Aletta-Jacobs-College    Morning     79    177
4       4  13 Aletta-Jacobs-College  Afternoon     88    170
5       5  13    Marie-Curie-School    Morning     88    182
6       6  12    Marie-Curie-School  Afternoon     82    179

我想用SchoolTimeOfTest 绘制Score1Score2

现在,按照this其他问题的答案,我可以通过一个变量获得颜色:

plot(df$Score1, df$Score2, col=df$School)

但是,如果我尝试将这两个因素结合起来,我会得到一个空图。

我尝试了不同的解决方案,但都没有奏效:

plot(df$Score1, df$Score2, col=c(df$School, df$TimeOfTest))

或者

colors <- levels(interaction(df$School, df$TimeOfTest))
plot(df$Score1, df$Score2, col=colors)

有什么想法吗?也许没有 ggplot2 ?

【问题讨论】:

  • plot(df$Score1, df$Score2, col= as.numeric(as.factor(paste(df$School,df$TimeOfTest))))
  • 对我来说,interaction 方法似乎工作得很好。 df &lt;- data.frame(Score1 = 1:6, Score2 = 1:6, School = c(rep("A",4),rep("M",2)), TimeOfTest = c("M","A")); colors &lt;- interaction(df$School,df$TimeOfTest); plot(df$Score1,df$Score2,col = colors); legend("bottomright",legend = colors,col = colors,fill = colors)
  • 是的,interaction(...) 确实有效。我正在使用级别(交互(...))。

标签: r plot


【解决方案1】:

正如 cmets 中所指出的,以下工作:

colors <- interaction(df$School, df$TimeOfTest)
plot(df$Score1, df$Score2, col=colors)

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多