David Doyle
2017-Sep-26 19:51 UTC
[R] Adding non-data line to legend ggplot2 Maximum Contaminant Level
Hello everyone,
I have a plot showing chloride concentrations for various point over time.
I also have a dotted line that show the Secondary Maximum Contaminant Level
(my screening limit) on the graphs at 250 mg/L. But I can not figure out
how to include the dotted line / Secondary Maximum Contaminant Level in
the legend. Any thoughts? My code is as following and is linked to my
data on the net.
Thank you in advance
David
#Loads the ggplot2 package.
library(ggplot2)
##This loads your data from your worksheet
MyData
<-read.csv("http://doylesdartden.com/Stats/TimeSeriesExample.csv",
sep=",")
#Sets which are detections and nondetects
MyData$Detections <- ifelse(MyData$D_Chloride ==1, "Detected",
"NonDetect")
#does the plot
p <- ggplot(data = MyData, aes(x=Year, y=Chloride , col=Detections)) +
geom_point(aes(shape=Detections)) +
#sets the detect vs. non-detect colors
scale_colour_manual(values=c("black","red")) +
#sets the y scale and log base 10
scale_y_log10() +
##adds line
geom_hline(aes(yintercept=250),linetype="dashed")+
#location of the legend
theme(legend.position=c("right")) +
#sets the line color, type and size
geom_line(colour="black", linetype="dotted", size=0.5) +
ylab("Chloride (mg/L)")
## does the graph using the Location IDs as the different Locations.
p + facet_grid(Location ~ .)
[[alternative HTML version deleted]]
John Kane
2017-Oct-01 10:44 UTC
[R] Adding non-data line to legend ggplot2 Maximum Contaminant Level
I just glanced at the problem but I think you would have to create a new
variable to replace the hline. What about adding some text annotation in the
graph instead?
On Tuesday, September 26, 2017, 3:51:46 PM EDT, David Doyle <kydaviddoyle
at gmail.com> wrote:
Hello everyone,
I have a plot showing chloride concentrations for various point over time.
I also have a dotted line that show the Secondary Maximum Contaminant Level
(my screening limit) on the graphs at 250 mg/L.? But I can not figure out
how to include the dotted line / Secondary Maximum Contaminant Level in
the legend.? Any thoughts?? My code is as following and is linked to my
data on the net.
Thank you in advance
David
#Loads the ggplot2 package.
library(ggplot2)
##This loads your data from your worksheet
MyData
<-read.csv("http://doylesdartden.com/Stats/TimeSeriesExample.csv",
sep=",")
#Sets which are detections and nondetects
MyData$Detections <- ifelse(MyData$D_Chloride ==1, "Detected",
"NonDetect")
#does the plot
p <- ggplot(data = MyData, aes(x=Year, y=Chloride , col=Detections)) +
? geom_point(aes(shape=Detections)) +
? #sets the detect vs. non-detect colors
? scale_colour_manual(values=c("black","red")) +
? #sets the y scale and log base 10
? scale_y_log10() +
? ##adds line
? geom_hline(aes(yintercept=250),linetype="dashed")+
? #location of the legend
? theme(legend.position=c("right")) +
? #sets the line color, type and size
? geom_line(colour="black", linetype="dotted", size=0.5) +
? ylab("Chloride (mg/L)")
## does the graph using the Location IDs as the different Locations.
p + facet_grid(Location ~ .)
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
[[alternative HTML version deleted]]
John Kane
2017-Oct-05 13:49 UTC
[R] Adding non-data line to legend ggplot2 Maximum Contaminant Level
Well, here is one way but it seems a bit clumsy.
In words, I created a new data.frame with "250" in the Chloride vector
and "SMCL" in the Detections vector and supplessed one legend.
Warning: For my convenience I am using different data.frame names .
library(ggplot2)
MyData
<-read.csv("http://doylesdartden.com/Stats/TimeSeriesExample.csv",
sep=",")
MyData$Detections <- ifelse(MyData$D_Chloride ==1, "Detected",
"NonDetect")
dat1 <-? MyData[, c(1, 3, 4, 6)]
dat2 <-? dat1[, c(1,2)]
dat2$Detections <-? rep("SMCL", nrow(dat2))
dat$Chloride <-? rep(250, nrow(dat2))
dat3 <-? rbind(dat1, dat2)
p <-? ggplot(dat3, aes(Year, Chloride, colour = Detections)) +
?????????? geom_point(aes(shape=Detections), show.legend = F) +
?????????? geom_line( aes(Year, Chloride))
On Tuesday, October 3, 2017, 3:17:00 PM EDT, David Doyle <kydaviddoyle at
gmail.com> wrote:
Hi John,
I used your recommendation of adding a new variable (see below) and it is
plotting the line at the 250 mg/L mark but I still can not figure out how to get
it added to the legend.
Thanks again for your help.
David
#Loads the ggplot2 package.? NOTE you have to install it before
hand.library(ggplot2)
##This loads your data from your worksheetMyData
<-read.csv("http://doylesdartden.com/Stats/TimeSeriesExample.csv",
sep=",")
#Sets which are detections and nondetects
MyData$Detections <- ifelse(MyData$D_Chloride ==1, "Detected",
"NonDetect")
# adds my screening LevelMyData$SMCL <- rep(250, nrow(MyData))
#does the plotp <- ggplot(data = MyData, aes(x=Year, y=Chloride,
col=Detections)) +? geom_point(aes(shape=Detections)) +? geom_line(data =
MyData,aes(y=SMCL))+?? ?#sets the detect vs. non-detect colors?
scale_colour_manual(values=c("black","red")) +???? #sets the
y scale and log base 10? scale_y_log10() +??? #location of the legend???
theme(legend.position=c("right")) +??? #sets the line color, type and
size? geom_line(colour="black", linetype="dotted", size=0.5)
+?
? ylab("Chloride (mg/L)")
## does the graph using the Location IDs as the different Locations.p +
facet_grid(Location ~ .)
On Mon, Oct 2, 2017 at 5:09 AM, John Kane <jrkrideau at yahoo.ca> wrote:
MyData$newvar <- rep(250, nrow(MyData))
Again, I have not tried graphing this.
On Sunday, October 1, 2017, 10:38:09 PM EDT, David Doyle <kydaviddoyle at
gmail.com> wrote:
Hi John,
How do I add a second y variable??ThanksDavid
On Sun, Oct 1, 2017 at 5:44 AM, John Kane <jrkrideau at yahoo.ca> wrote:
I just glanced at the problem but I think you would have to create a new
variable to replace the hline. What about adding some text annotation in the
graph instead?
On Tuesday, September 26, 2017, 3:51:46 PM EDT, David Doyle <kydaviddoyle
at gmail.com> wrote:
Hello everyone,
I have a plot showing chloride concentrations for various point over time.
I also have a dotted line that show the Secondary Maximum Contaminant Level
(my screening limit) on the graphs at 250 mg/L.? But I can not figure out
how to include the dotted line / Secondary Maximum Contaminant Level in
the legend.? Any thoughts?? My code is as following and is linked to my
data on the net.
Thank you in advance
David
#Loads the ggplot2 package.
library(ggplot2)
##This loads your data from your worksheet
MyData <-read.csv("http:// doylesdartden.com/Stats/
TimeSeriesExample.csv",
sep=",")
#Sets which are detections and nondetects
MyData$Detections <- ifelse(MyData$D_Chloride ==1, "Detected",
"NonDetect")
#does the plot
p <- ggplot(data = MyData, aes(x=Year, y=Chloride , col=Detections)) +
? geom_point(aes(shape= Detections)) +
? #sets the detect vs. non-detect colors
? scale_colour_manual(values=c(" black","red")) +
? #sets the y scale and log base 10
? scale_y_log10() +
? ##adds line
? geom_hline(aes(yintercept=250) ,linetype="dashed")+
? #location of the legend
? theme(legend.position=c(" right")) +
? #sets the line color, type and size
? geom_line(colour="black", linetype="dotted", size=0.5) +
? ylab("Chloride (mg/L)")
## does the graph using the Location IDs as the different Locations.
p + facet_grid(Location ~ .)
??? [[alternative HTML version deleted]]
______________________________ ________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/ listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/ posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
[[alternative HTML version deleted]]