我的(最小可重复性)代码显示了scale_x_datetime的两种可能性。
如果不使用lables说明符,我得到的刻度标签格式为yyyy-mm-dd。我不希望刻度标签中包含年份,因为年份用于标题中的开始和结束日期。
然而,当我使用labels说明符时,tick标签显示该月的最后一天。
我如何在每月的第一天获得没有年份的刻度标签。
谢谢你。
library(ggplot2)
library(scales)
mydata <- read.table(header = TRUE, text = "
dates values
2022-12-03 5
2023-03-02 0
")
plottib <- tibble(mydata) %>%
mutate(dates = as.POSIXct(dates,format="%Y-%m-%d") )
start_date <- min(mydata$dates)
end_date <- max(mydata$dates)
gp <- ggplot( plottib , aes( x=dates, y=values )) +
geom_point() +
labs(title = paste("From", start_date, 'to', end_date, sep=' ') ) +
scale_x_datetime(date_breaks = "1 month") `a`
# scale_x_datetime(date_breaks = "1 month", labels = date_format("%d %b") )
gp
2条答案
按热度按时间0vvn1miw1#
当您将"日期"转换为"POSIXct"时,您必须指定时区:
这导致:
ecr0jaav2#
谢谢你“爱德华”的建议,我试过了,但运气不好。我觉得有义务深入挖掘,直到找到解决办法。
下面的版本确实解决了这个问题。我不明白为什么一个版本在月底给出滴答声,而另一个版本在月初给出滴答声。