在ggplot中设置带有3个变量的小平面换行有些困难,其中三个变量是点,第三个变量是一条线。应该有十二个地块(每个月一幅,这是分面包装),沿x的位置和沿y的数字的位置。这三个变量是OSM,DRP和需求。这是示例数据(实际数据由每月30个位置的12个月组成)。我将其添加为代码,因为我不知道如何将Excel数据添加到Stack Overflow。
到目前为止,我生成的代码如下,但它不起作用。我也想不通如何将三个变量添加到图例中。任何帮助将不胜感激。
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
答案 0 :(得分:2)
该解决方案比您尝试实现的要简单得多。
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"))