ggplot:将手动断点分配给日期刻度
ggplot: assign manual break points to date scale
我有一些时间序列数据,我想自定义 x 轴(日期)以显示我获得测量值的日期标签,而不是按 week/month/year.[=15 定期休息=]
示例数据:
dates <- as.Date("2011/01/01") + sample(0:365, 5, replace=F)
number <- sample(1:100, 5)
df <- data.frame(
dates = dates,
number = number
)
这样我就可以每月定期休息绘制我的 df...
ggplot(df, aes(as.Date(dates), number)) +
geom_point(size=6) +
geom_segment(aes(x = dates, y = 0, xend = dates, yend = number),
size=0.5, linetype=2) +
scale_x_date(breaks = date_breaks("1 month"), labels = date_format("%d-%b-%Y")) +
theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5))
...但我想将主要休息时间设置为 df$dates
中的实际 5 个日期。它适用于正常的连续刻度(scale_x_continuous(breaks = c(1, 3, 7, 9))
),但我不知道如何为连续的日期刻度做这件事。
我想做类似...
scale_dates_continuous(breaks = df$dates)
...但不幸的是,这并不存在。非常感谢您的帮助!
请阅读 ?scale_x_date
,关于 breaks
参数:您可以使用 "vector of breaks"。因此,尝试
scale_x_date(breaks = df$dates, labels = date_format("%d-%b-%Y"))
我有一些时间序列数据,我想自定义 x 轴(日期)以显示我获得测量值的日期标签,而不是按 week/month/year.[=15 定期休息=]
示例数据:
dates <- as.Date("2011/01/01") + sample(0:365, 5, replace=F)
number <- sample(1:100, 5)
df <- data.frame(
dates = dates,
number = number
)
这样我就可以每月定期休息绘制我的 df...
ggplot(df, aes(as.Date(dates), number)) +
geom_point(size=6) +
geom_segment(aes(x = dates, y = 0, xend = dates, yend = number),
size=0.5, linetype=2) +
scale_x_date(breaks = date_breaks("1 month"), labels = date_format("%d-%b-%Y")) +
theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5))
...但我想将主要休息时间设置为 df$dates
中的实际 5 个日期。它适用于正常的连续刻度(scale_x_continuous(breaks = c(1, 3, 7, 9))
),但我不知道如何为连续的日期刻度做这件事。
我想做类似...
scale_dates_continuous(breaks = df$dates)
...但不幸的是,这并不存在。非常感谢您的帮助!
请阅读 ?scale_x_date
,关于 breaks
参数:您可以使用 "vector of breaks"。因此,尝试
scale_x_date(breaks = df$dates, labels = date_format("%d-%b-%Y"))