我试图在我工作的河上绘制估计的和实际的深度值。似乎估计和实际重叠的时间段,估计输出不正确,即使我估计值到2012年9月(图表上的结束时间)
library(ggplot2)
library(scales)
LowerHydro<-data.frame(LowerHydrology)
LowerHydro$date <- as.Date(LowerHydro$Date, format = "%m/%d/%y")
LowerHydro<-rename(LowerHydro,c(Clarks.Lower..m.="Depth"))
qplot(main="Lower Clarks Hydrograph",xlab="Date",ylab="Depth(m)",
date,Depth,data=LowerHydro,group=Group,color=Group,geom="line") +
geom_line(lwd=0.70) +
scale_x_date(labels=date_format("%b-%y"),
breaks="60 days",
limits = as.Date(c("2010-10-01","2012-09-12")),
expand=c(0.01,0)) +
theme_bw()+
labs(colour="") +
scale_y_continuous(expand=c(0.03,0),
limits=c(4,20),
breaks=seq(4,20,by=2),
labels=seq(4,20,by=2)) +
theme(axis.title.x=element_text(face='bold',size=16,vjust=-2)) +
theme(axis.title.y=element_text(face='bold',size=16,angle = 90,vjust=-0.2,hjust=0.5)) +
theme(plot.title=element_text(face='bold',size=25,vjust=2)) +
theme(axis.text.x=element_text(size=12)) +
theme(axis.text.y=element_text(size=12)) +
theme(legend.title=element_text(size=16,hjust=-0.2)) +
theme(legend.text=element_text(size=16)) +
theme(legend.key.size=unit(c(1.15,1.15),"lines")) +
scale_color_manual(values=c("Estimated"="black", "Actual"="blue")) +
theme(plot.margin = unit(c(1,-5,2,2),"lines"))
str(LowerHydro)
data.frame': 1053 obs. of 4 variables:
$ Date : Factor w/ 1053 levels "01/01/11","01/01/12",..: 561 563 565 567 569 571 572 574 576 578 ...
$ Depth: num 5.24 5.14 5.42 5.27 5.27 ...
$ Group: Factor w/ 2 levels "Actual","Estimated": 2 2 2 2 2 2 2 2 2 2 ...
$ date : Date, format: "2010-10-01" "2010-10-02" ...
with(LowerHydro, LowerHydro[date %in% seq.Date(as.Date("2012-01-01"), as.Date("2012-01-10"), by='1 day'),])
Date Clarks.Lower..m. Group
457 1/1/2012 11.242 Estimated
458 1/2/2012 11.054 Estimated
459 1/3/2012 11.054 Estimated
460 1/4/2012 10.992 Estimated
461 1/5/2012 10.773 Estimated
462 1/6/2012 9.959 Estimated
463 1/7/2012 8.739 Estimated
464 1/8/2012 7.676 Estimated
465 1/9/2012 7.019 Estimated
466 1/10/2012 6.581 Estimated
很抱歉qplot上的繁琐代码...它的所有美学......但似乎它不喜欢我在2011年10月之后的相同日期范围内的实际和估计值。我无法发布图像,但基本上我估计了整个日期范围的值,但是在它们与实际值一致之后,估计线只是在一个微小的角度上排成直线,直到时间范围结束。
以下是该图表的链接:
http://s1358.beta.photobucket.com/user/jaredmilitello/media/Rplot01_zps9b29f6d3.png.html
如果我编辑此代码以在2011-10-07的行为中创建第一个日期,而不是像原来的那样我得到一个错误...本质上这个代码是我没有随机深度的数据集。
> act <- data.frame(date=seq.Date(as.Date('2011-10-07'),
as.Date('2012-09-12'),
by='1 day'),
Depth=rnorm(n=431, sd=100),
Group="Actual")
Error in data.frame(date = seq.Date(as.Date("2011-10-07"), as.Date("2012-09-12"), :
arguments imply differing number of rows: 342, 431, 1
> est <- data.frame(date=seq.Date(as.Date('2010-10-01'),
as.Date('2012-09-12'),
by='1 day'),
Depth=rnorm(n=713, sd=100),
Group="Estimate")
> LowerHydro <- rbind(act, est)
> str(df)
function (x, df1, df2, ncp, log = FALSE)
> qplot(date, Depth, data=LowerHydro, colour=Group, geom="line")
答案 0 :(得分:4)
如果不了解您的数据,正如评论已经注明,我们无法帮助您。
您的数据一定有问题,因为绘制两条重叠时间段的行没有问题:
act <- data.frame(date=seq.Date(as.Date('2011-07-10'),
as.Date('2012-09-12'),
by='1 day'),
Depth=rnorm(n=431, sd=100),
Group="Actual")
est <- data.frame(date=seq.Date(as.Date('2010-10-01'),
as.Date('2012-09-12'),
by='1 day'),
Depth=rnorm(n=713, sd=100),
Group="Estimate")
LowerHydro <- rbind(act, est)
str(df)
qplot(date, Depth, data=LowerHydro, colour=Group, geom="line")
如果您需要帮助,请将问题重现(请参阅评论中的链接),并提供有关数据的所有相关详细信息。
此外,不要为你的情节所做的所有调整而烦恼(要知道它们在ggplot2
意义上不是美学),直到基本情节为止工作。至少不要在这里把所有不相关的东西都放在你的问题中。
修改强>
在查看您的实际数据后,问题会很快显现出来。如果你整理你的情节而不用担心它的外观,那么你应该避免将来遇到这样的问题。
当我运行原始qplot
时会发生这种情况:
qplot(date, Depth, data=LowerHydro, group=Group, color=Group, geom="line")
很明显,估计组的日期已经填满了 - 在实际测量开始后,估计组将在未来十年内跳跃。
现在,关于发生为什么,您必须返回到将Date
转换为date
的时间。您使用format="%m/%d/%Y"
,这将是伟大的,除了不一致。对于大约2011-10-04之后的日期,格式从%m/%d/%y
更改为%m/%d/%Y
(即2011年1月10日至2011年1月10日)。
将来要避免这种情况:
答案 1 :(得分:1)
我生成了一些样本数据来尝试你的情节:
library(package=ggplot2)
library(package=scales)
LowerHydro <- data.frame(date=seq.Date(as.Date('2010-10-01'),
as.Date('2012-09-12'),
by='1 day'),
Depth=rnorm(n=713, sd=100),
Group=c(rep('Estimated', 363),
rep('Actual', 350)))
绘制它(简化的情节,请注意)
qplot(date, Depth, data=LowerHydro, group=Group, color=Group, geom="line")+
scale_x_date(labels=date_format("%b-%y"),breaks="60 days",
limits = as.Date(c("2010-10-01","2012-09-12")),
expand=c(0.01,0))+theme_bw()
一切似乎都符合预期。
现在,我在末尾添加了一个贴错标签的日期(最后一个日期有实际和估计数据的数据)
LowerHydro <- rbind(LowerHydro, data.frame(date=as.Date('2012-09-12'),
Depth=rnorm(n=1, sd=100),
Group='Estimated'))
然后情节破裂
qplot(date, Depth, data=LowerHydro, group=Group, color=Group, geom="line")+
scale_x_date(labels=date_format("%b-%y"),breaks="60 days",
limits = as.Date(c("2010-10-01","2012-09-12")),
expand=c(0.01,0))+theme_bw()
您是否检查了每个估算数据和实际数据中的日期范围?