好吧,我一直在寻找这个网站,在一个地块上制作两个直方图。 我到了
ggplot()+geom_histogram(data=etapa1, aes(x=AverageTemperature),col="red")+
geom_histogram(data=etapa2, aes(x=AverageTemperature),col="blue")
我有两个不同颜色的直方图,但我没有得到一个图例或一个标签,显示每种颜色。我该如何制作呢?
答案 0 :(得分:3)
正如 Spacedman 所说,如果能更详细地指出问题并提供示例数据集会更好。
所以我创建了一个模拟温度的随机样本集。
etapa1 <- data.frame(AverageTemperature = rnorm(100000, 16.9, 2))
etapa2 <- data.frame(AverageTemperature = rnorm(100000, 17.4, 2))
#Now, combine your two dataframes into one. First make a new column in each.
etapa1$e <- 'etapa1'
etapa2$e <- 'etapa2'
# combine the two data frames etapa1 and etapa2
combo <- rbind(etapa1, etapa2)
ggplot(combo, aes(AverageTemperature, fill = e)) + geom_density(alpha = 0.2)
对我而言,使用密度图而不是直方图似乎更为明显,因为温度是实数。
希望这有所帮助...
如果您不想将两个data.frames结合起来,那就有点棘手......
您必须使用scale_colour_manual
和scale_fill_manual
。然后为fill
语句定义变量。这可以在标签部分链接
ggplot() +
geom_density(data = etapa1, aes(x = AverageTemperature, fill = "r"), alpha = 0.3) +
geom_density(data = etapa2, aes(x = AverageTemperature, fill = "b"), alpha = 0.3) +
scale_colour_manual(name ="etapa", values = c("r" = "red", "b" = "blue"), labels=c("b" = "blue values", "r" = "red values")) +
scale_fill_manual(name ="etapa", values = c("r" = "red", "b" = "blue"), labels=c("b" = "blue values", "r" = "red values"))
您可以分别将geom_density()
替换为geom_histogram()
。
答案 1 :(得分:2)
使用@ TimoWagner的例子:
set.seed(1001)
etapa1 <- data.frame(AverageTemperature = rnorm(100000, 16.9, 2))
etapa2 <- data.frame(AverageTemperature = rnorm(100000, 17.4, 2))
以下是将两个数据集打包在一起的另一种方法:
combdat <- dplyr::bind_rows(list(dat1=etapa1,dat2=etapa2),
.id="dataset")
两个叠加的直方图:
library(ggplot2)
ggplot(combdat,aes(AverageTemperature,fill=dataset))+
scale_fill_manual(values=c("red","blue"))+
geom_histogram(alpha=0.5,binwidth=0.1,position="identity")