说我有这样的数据集
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")
如何改变它,以便我只用三个盒子而不是六个盒子来获得一个图例。一个带有自定义名称的红色,蓝色和绿色。我可以在数据框中添加一个组列,但是一旦我将其熔化,就会将列分组在一起变得毫无用处。
答案 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")