将分类数据绘制为R中的马赛克

时间:2016-01-26 15:57:54

标签: r plot ggplot2

我有一个可以想象的数据结构:

 a <- c("P","F","P","P")
 b <- c("P","P","P","P")
 c <- c("P","P","N","P")
 d <- c("P","F","P","F")

 data <- data.frame(a,b,c,d)

我希望将值绘制为颜色块。我看到过相同/类似的问题here,我希望输出相同类型的ggplot。我是新手在R中绘图我该如何调整代码?

1 个答案:

答案 0 :(得分:1)

如果您为数据提供id列,则可以按照链接问题中的示例进行操作。有点简化:

data$id=c("e","f","g","h")
ggplot(reshape2::melt(data,id.var="id"), aes(x=id, y=variable, fill=value)) + geom_tile()
# Warning message:
attributes are not identical across measure variables; they will be dropped 

data grid] 1

警告是因为您的数据框在每列中都有因子,并且每个列都有不同的级别(因为并非每个列都包含F,N和P的全部)。如果您转换为字符,或者您的真实用例是根据具有完整级别集的因素构建它,那么您将不会收到警告。否则忽略。