自定义ggplot图例

时间:2015-05-05 00:07:17

标签: r graph plot ggplot2

说我有这样的数据集

  X1 X2 X3 X4 X5 X6
1  3  4  5  6  7  5
2  6  7  6  3  1  4
3  8  7  9  1  2  4

和像这样的代码

ggplot(data=melt(vecDF), aes(x = variable, y=value)) + geom_violin(aes(fill=variable))+
scale_fill_manual(values=c("red","red","blue","blue","green","green"))+
 ggtitle("Coverage")+xlab("Location")+ylab("Value")

如何改变它,以便我只用三个盒子而不是六个盒子来获得一个图例。一个带有自定义名称的红色,蓝色和绿色。我可以在数据框中添加一个组列,但是一旦我将其熔化,就会将列分组在一起变得毫无用处。

1 个答案:

答案 0 :(得分:0)

将组列添加到已熔化的数据框:

vecDF_melted = melt(vecDF)

vecDF_melted$group = plyr::revalue(vecDF_melted$variable,
                                   c(X1='group1', X2='group1',
                                     X3='group2', X4='group2',
                                     X5='group3', X6='group3'))

ggplot(vecDF_melted, aes(x=variable, y=value, fill=group)) + 
    geom_violin() +
    ggtitle("Coverage") +
    xlab("Location") + 
    ylab("Value")