我正在绘制水位数据图。我试图更改x轴标签,以便将年份标签放置在每年的1月1日,但它似乎将其放置在接近末尾的位置。如何执行此操作?
编辑:
breaks=seq()部分中的问题。最小日期是2014年11月。如何将开始日期时间设置为“2015-01-01 00:00:00”?
当前代码:
plotTitles <- list('Crose Mere'= 'Crose Mere',
'Sweat Mere new' = 'Sweat Mere',
'Whattall New' = 'Whattall'
)
scaleFUN <- function(x) sprintf("%.2f", x)
plotlist_controlSites <- list()
j = 1 # counter for plot title and index
for (datTime in DTW){
plotName <- names(DTW)[j]
j = j+1
plot <-
datTime %>%
ggplot(aes(x=DateTime)) +
geom_point(aes(y=mAOD), col='grey') +
geom_smooth(aes(y=mAOD), col='black', se=FALSE, span=0.1, method="loess") +
theme_classic() +
labs(y='Water Depth (mAOD)', x=NULL) +
ggtitle(plotTitles[[plotName]][1]) +
scale_x_datetime(
breaks=seq(min(datTime$DateTime), max(datTime$DateTime),
by= "1 year"), date_labels="%Y",
limits = as.POSIXct(c('2015-01-01', '2022-01-01'))) +
scale_y_continuous(labels=scaleFUN, limits = c(50, 140)) +
theme(text=element_text(size=20, family='Calibri Light')) +
theme(plot.margin = unit(c(1, 1, 1, 1), 'cm')) +
theme(axis.title.y=element_text(margin=margin(t=0, r=20, b=0, l=0))) +
theme(axis.title.x=element_text(margin=margin(t=20, r=0, b=0, l=0))) +
theme(axis.title.y.right=element_text(margin=margin(t=0, r=0, b=0, l=20)))
plotlist_controlSites[[plotName]] <- plot
}
Dataframe 头
structure(list(DateTime = structure(c(1417107600, 1417111200,
1417114800, 1417118400, 1417122000, 1417125600), class = c("POSIXct",
"POSIXt"), tzone = ""), siteTemp = c(8.64, 8.65, 8.61, 8.53,
8.45, 8.38), baroTemp = c(7.34, 6.4, 6.18, 6.21, 6.48, 6.8),
mAOD = c(NA, 72.5069999999999, 72.0069999999999, 71.7069999999999,
72.2070000000001, 72.3069999999998)), row.names = 22062:22067, class = "data.frame")
电流输出
这是情节的一个片段。基本上标签就像一年后。所以在它说2022的地方,那是2022年的结束,应该说2023年。
如果我将标签更改为'%m-%Y'的形式,您可以看到它放置标签的位置。
1条答案
按热度按时间jk9hmnmh1#
如果没有看到
datTime$DateTime
的范围,很难说,但我的猜测是,min(datTime$DateTime)
不是今年1月的第一个,但更接近年底。因此,您可以使用以下代码段:
为了证实我的理论,看看
你会发现休息是在年底而不是年初。