3

I'm having a bit of difficulty setting up a facet wrap in ggplot with three variables of which two are points and the third is a line. There should be twelve plots (one for each month, which is the facet wrap) with locations along the x and numparts along the y. The three variables are OSM, DRP and Demand. Here is sample data (the actual data consists of 12 months of 30 locations per month). I added it as code as I can't figure out how to add Excel data to Stack Overflow.

The code I've generated so far is as follws, but it doesn't work. I also can't figure out how to get the three variables into a legend. Any assistance would be appreciated.

library(ggplot2)
parts$Location<-as.factor(parts$Location)
parts$OSM<-as.factor(parts$OSM)
parts$DRP<-as.factor(parts$DRP)
parts$Demand<-as.factor(parts$Demand)
parts$Month<-as.factor(parts$Month)
data=data.frame(parts$Location,parts$Month,parts$OSM,parts$DRP,parts$Demand)

# Faceting
ggplot(data)+geom_point(stat = "identity", aes(y=parts$OSMparts, x=parts$Location,pch=4,col="red" )) + 
  geom_point(stat = "identity", aes(y=parts$DRPparts, x=parts$Location,pch=16,col="blue" ))+
  geom_line(stat = "identity", aes(y=parts$Demandparts, x=parts$Location,col="green" ))
  facet_wrap(~parts$Month)



Location    Month   OSM Demand  DRP
1   January 0   0   1
2   January 2   0   2
3   January 0   1   0
4   January 0   0   1
5   January 2   0   2
1   February    0   0   0
2   February    2   2   2
3   February    0   0   0
4   February    1   1   0
5   February    1   1   2
1   March   0   0   0
2   March   2   4   2
3   March   0   1   0
4   March   2   2   1
5   March   2   2   2
1   April   0   0   NA
2   April   2   2   NA
3   April   0   0   NA
4   April   1   1   NA
5   April   2   4   NA
1   May 0   0   NA
2   May 1   0   NA
3   May 0   0   NA
4   May 2   2   NA
5   May 2   0   NA
1   June    0   0   0
2   June    3   6   2
3   June    0   0   0
4   June    1   3   1
5   June    2   7   2
1   July    0   0   0
2   July    3   3   3
3   July    0   1   0
4   July    3   4   2
5   July    3   4   3
1   August  0   1   0
2   August  3   3   3
3   August  0   0   0
4   August  4   6   3
5   August  3   6   3
1   September   0   0   1
2   September   3   0   3
3   September   0   0   1
4   September   2   3   3
5   September   3   1   4
1   October 0   0   0
2   October 2   1   2
3   October 0   0   0
4   October 4   3   3
5   October 3   1   3
1   November    0   0   0
2   November    2   1   2
3   November    0   1   0
4   November    5   7   3
5   November    4   5   3
1   December    0   0   0
2   December    2   5   2
3   December    0   0   0
4   December    2   0   4
5   December    5   13  3
Angus
  • 355
  • 2
  • 12
  • Please post code or data as text, and [not as images](https://meta.stackoverflow.com/questions/285551/why-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557). Also see how to make a [great reproducible example](https://stackoverflow.com/a/5963610/2359523). – Anonymous coward Nov 28 '18 at 22:05
  • Welcome to SO (I say that as you posted a picture of data). Pictures are neither code nor data unless the topic is image processing. Please remove the image, click on the "r" below your question, click on "info" and study how to post a proper question. – hrbrmstr Nov 28 '18 at 22:59

1 Answers1

2

The solution is far more simple than you are trying to make it.

ggplot(parts) +
  geom_point(aes(x=Location, y=OSM, col="blue"), pch=16)+
  geom_point(aes(x=Location, y=DRP, col="red"), pch=16)+
  geom_line(aes(x=Location, y=Demand, col="green"))+
  facet_wrap(~factor(Month, levels = month.name))+
  scale_colour_discrete(name  ="Label",
                        labels=c("DRP", "Demand","OSM"))
Jared C
  • 362
  • 7
  • 19