R 调整ggplot2中的图例和颜色

R 调整ggplot2中的图例和颜色,r,plot,ggplot2,R,Plot,Ggplot2,我使用以下数据: testdf = structure(list(var1 = c(14.9, 15.5, 16.5, 16.6, 15.1, 13.8, 13.2, 27.6, 22.3, 29.1, 18.4, 14.8, 15.7, 14.3, 15.5, 15.8, 17.6, 14.9, 16.9, 20.8, 13.9, 20.1, 16.9, 24.7, 15.2, 15.9, 15.8, 17.1, 15.9, 17.3, 17.5, 14.7, 21, 12, 18.6,

我使用以下数据:

testdf = structure(list(var1 = c(14.9, 15.5, 16.5, 16.6, 15.1, 13.8, 13.2, 
27.6, 22.3, 29.1, 18.4, 14.8, 15.7, 14.3, 15.5, 15.8, 17.6, 14.9, 
16.9, 20.8, 13.9, 20.1, 16.9, 24.7, 15.2, 15.9, 15.8, 17.1, 15.9, 
17.3, 17.5, 14.7, 21, 12, 18.6, 16.1, 16.1, 15.8, 15.9, 13.9, 
13.6, 13.6, 14.2, 13.9, 14.1, 13.9, 13.7, 13.6, 13.9, 13.2), 
    age = c(7L, 7L, 8L, 10L, 7L, 11L, 9L, 14L, 12L, 15L, 10L, 
    12L, 12L, 9L, 9L, 10L, 15L, 10L, 12L, 14L, 15L, 13L, 15L, 
    13L, 11L, 9L, 14L, 12L, 12L, 15L, 13L, 12L, 15L, 7L, 14L, 
    8L, 10L, 8L, 9L, 9L, 8L, 10L, 9L, 9L, 11L, 10L, 10L, 9L, 
    9L, 9L)), .Names = c("var1", "age"), row.names = c(NA, 50L
), class = "data.frame")
我可以有一个带有以下代码的直方图:

ggplot(testdf)+geom_histogram(aes(var1,group=age,color=age,fill=age))
但是我怎样才能得到传说中的7、8、9、10、11、12、13、14、15岁以及所有这些年龄组的不同颜色,例如彩虹(9)

我尝试了以下代码,但它们只能部分工作:

ggplot(testdf)+geom_histogram(aes(var1,group=age,color=age,fill=age))+scale_colour_continuous(breaks=c(7:15),color=rainbow(9))

ggplot(testdf)+geom_histogram(aes(var1,group=age,color=age,fill=age, legend=F))+scale_colour_continuous(breaks=c(7:15))

正如@nrussel所说,您必须将
age
转换为一个因子变量。您可以在
ggplot2
中执行此操作。此外,在这种情况下,您实际上不需要
颜色
参数

与:

您应该得到以下结果:

我认为问题在于,由于年龄是一个数字变量,因此没有将其视为离散因素。尝试执行
testdf$age是的,它可以工作。谢谢,谢谢。我怎样才能把传奇的标题改成。因素(年龄)看起来不太好。我尝试了缩放颜色离散(“Mytitle”)但不起作用。@rnso因为我使用了
填充
,所以使用
缩放填充离散
应该可以起作用
ggplot(testdf)+
  geom_histogram(aes(var1, fill=as.factor(age)))