我有一个数据框,我试图在同一图中绘制一条线和一条条。我还需要一个传说。我得到了可以显示所需颜色的条形图,但它比颜色更像是添加的轮廓线,它在y =零处显示了一条我想删除的水平线。
感谢您的帮助!
这是我的代码:
windows()
ggplot(data = rr, aes(x = date))+
geom_point(aes(y=value, colour="Nitrogen"))+
geom_line(aes(y=value, colour="Nitrogen"))+
facet_grid(depth~dose) +
geom_bar(data=rr,stat = "identity", position = position_dodge(width = 0.9),aes(x=date, y=rain100 ,colour="Rains"))+
theme(strip.text.x = element_text(size = 7, colour = "black", angle = 0),axis.text.x = element_text(angle=90,vjust=0.5,hjust=0.5, size=8))+
ylab("Soil nitrogen measured as nitrate, lb/ac and rains, 100ths of inch")+
scale_x_date(date_breaks = "1 month",date_labels = "%m-%d-%y")+
ggtitle("MR Ranch")+
ylim(0,350)+
scale_colour_manual("",
breaks=c("Nitrogen","Rains"),
values=c("black","blue"))
这是我的数据集(的简称)
structure(list(date = structure(c(17444, 17444, 17444, 17444,
17456, 17456, 17456, 17456, 17457, 17457, 17457, 17457, 17473,
17473, 17473, 17473, 17485, 17485, 17485, 17485, 17508, 17508,
17508, 17508, 17550, 17550, 17550, 17550), class = "Date"), depth = c("12-24 in",
"12-24 in", "0-12 in", "0-12 in", "12-24 in", "0-12 in", "0-12 in",
"12-24 in", "12-24 in", "12-24 in", "0-12 in", "0-12 in", "0-12 in",
"12-24 in", "0-12 in", "12-24 in", "0-12 in", "12-24 in", "0-12 in",
"12-24 in", "12-24 in", "0-12 in", "0-12 in", "12-24 in", "12-24 in",
"0-12 in", "0-12 in", "12-24 in"), value = c(60, 60, 60, 60,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 50, 20, 12, 69.5,
87, 30, 347, 12, 35, 17.4, 35, 35), trt = c("Experiment", "Control",
"Control", "Experiment", "Control", "Control", "Experiment",
"Experiment", "Experiment", "Control", "Control", "Experiment",
"Experiment", "Experiment", "Control", "Control", "Experiment",
"Control", "Control", "Experiment", "Experiment", "Control",
"Experiment", "Control", "Experiment", "Control", "Experiment",
"Control"), dose = c("High Preplant", "Low/No Preplant", "Low/No Preplant",
"High Preplant", "Low/No Preplant", "Low/No Preplant", "High Preplant",
"High Preplant", "High Preplant", "Low/No Preplant", "Low/No Preplant",
"High Preplant", "High Preplant", "High Preplant", "Low/No Preplant",
"Low/No Preplant", "High Preplant", "Low/No Preplant", "Low/No Preplant",
"High Preplant", "High Preplant", "Low/No Preplant", "High Preplant",
"Low/No Preplant", "High Preplant", "Low/No Preplant", "High Preplant",
"Low/No Preplant"), rain = c(0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0.01,
0.01, 0.01, 0.09, 0.09, 0.09, 0.09, 0, 0, 0, 0, 0, 0, 0, 0, 0.03,
0.03, 0.03, 0.03), rain100 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3)), row.names = c(NA,
-28L), class = "data.frame")
答案 0 :(得分:1)
因此,您似乎想要的是直方图而不是条形图。因此,我将geom_bar
更改为geom_histogram
。另外,我相信您会得到这个传说,因为您使用的是color
参数而不是fill
,这会给您一个轮廓。尝试以下代码:
ggplot(data = rr, aes(x = date)) +
geom_point(aes(y = value, colour = "Nitrogen")) +
geom_line(aes(y = value, colour = "Nitrogen")) +
facet_grid(depth ~ dose) +
geom_histogram(data= rr, stat = "identity", position = position_dodge(width = 0.9), aes(x = date, y = rain100 ,fill= "Rains")) +
theme(strip.text.x = element_text(size = 7, colour = "black", angle = 0), axis.text.x = element_text(angle = 90,vjust = 0.5, hjust = 0.5, size = 8)) +
ylab("Soil nitrogen measured as nitrate, lb/ac and rains, 100ths of inch") +
scale_x_date(date_breaks = "1 month", date_labels = "%m-%d-%y") +
ggtitle("MR Ranch")+
ylim(0,350)+
scale_colour_manual("",
breaks=c("Nitrogen","Rains"),
values=c("black","blue"))
答案 1 :(得分:1)
关键是使用填充而不是颜色。该代码将生成警告,但将正确显示。验证图例是否达到预期结果。
库(ggplot2)
ggplot(data = rr, aes(x = date))+
geom_point(aes(y=value, fill="Nitrogen"), colour="black")+
geom_line(aes(y=value, fill="Nitrogen"), colour="black")+
facet_grid(depth~dose) +
geom_bar(data=rr,stat = "identity", position = position_dodge(width = 0.9),aes(x=date, y=rain100, fill="Rains") )+
theme(strip.text.x = element_text(size = 7, colour = "black", angle = 0),axis.text.x = element_text(angle=90,vjust=0.5,hjust=0.5, size=8))+
ylab("Soil nitrogen measured as nitrate, lb/ac and rains, 100ths of inch")+
scale_x_date(date_breaks = "1 month",date_labels = "%m-%d-%y")+
ggtitle("MR Ranch")+
ylim(0,350) +
scale_fill_manual(labels=c("Nitrogen","Rains"), breaks=c("Nitrogen","Rains"), values=c("black","blue"), name="")