我正在尝试使用一些预测数据进行箱形图和须线图的绘制,并想将观测结果添加到图中作为一条线。我在此处提供了数据示例,以便您了解其外观。
$forecasts <- data.frame(f_type=c(rep("A",9),rep("B",9)),Date=c(rep(as.Date("2007-01-31"),3),rep(as.Date("2007-02-28"),3),rep(as.Date("2007-03-31"),3),rep(as.Date("2007-01-31"),3),rep(as.Date("2007-02-28"),3),rep(as.Date("2007-03-31"),3)),value=c(10,50,60,05,90,20,30,46,39,69,82,48,65,99,75,15,49,27))
$observation <- data.frame(Dt=c(as.Date("2007-01-31"),as.Date("2007-02-28"),as.Date("2007-03-31")),obs=c(30,49,57))
利用ggplot2库可以绘制出预测的箱形图,如下所示。 $p <- ggplot(data = forecasts, aes(x=as.factor(Date), y=value)) p <- p + geom_boxplot(aes(fill=f_type))
现在,我想将这些日期的观察结果作为一条线添加到此图中。到目前为止,我已经尝试了以下方法:
1. $p <- p + geom_line(data = observation,aes(x=Dt,y=obs))。 但是会产生错误:Error: Invalid input: date_trans works with objects of class Date only。
2. 将x轴作为因子,如下所示: $p <- p + geom_line(data = observation,aes(x=as.factor(Dt),y=obs))。 但是会产生以下错误:geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
请问有谁可以提供一些方法来实现这个目标吗?提前感谢。
利用ggplot2库可以绘制出预测的箱形图,如下所示。 $p <- ggplot(data = forecasts, aes(x=as.factor(Date), y=value)) p <- p + geom_boxplot(aes(fill=f_type))
现在,我想将这些日期的观察结果作为一条线添加到此图中。到目前为止,我已经尝试了以下方法:
1. $p <- p + geom_line(data = observation,aes(x=Dt,y=obs))。 但是会产生错误:Error: Invalid input: date_trans works with objects of class Date only。
2. 将x轴作为因子,如下所示: $p <- p + geom_line(data = observation,aes(x=as.factor(Dt),y=obs))。 但是会产生以下错误:geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
请问有谁可以提供一些方法来实现这个目标吗?提前感谢。
geom_boxplot
中使用coef =
进行调整。如果想要须延伸到其他统计量,需要传递一个函数给stat_summary
,就像你尝试的那样,但需要包含上面的aes(...)
以保持正确的分组。 - Brian