date/time數(shù)據(jù)的breaks移怯、labels設(shè)置
復(fù)習(xí):有三種date/time class:class 'Date'、class 'POSIXct'勾缭、class 'hms'犀概。
這三種class默認(rèn)的position scales分別是scale_*_date()
综看、scale_*_datetime()
、scale_*_time()
馒索。
與numeric數(shù)據(jù)相比莹妒,這些函數(shù)只是多個(gè)幾個(gè)方便date/time數(shù)據(jù)的參數(shù)而已:
numeric和date/time | date/time | 用法舉例 | 用法舉例等價(jià)于 |
---|---|---|---|
breaks |
date_breaks --一個(gè)字符串,用于給定兩個(gè)breaks之間的距離 |
date_breaks="1 month" |
breaks = scales::breaks_width("1 month") |
minor_breaks |
date_minor_breaks --一個(gè)字符串绰上,用于給定兩個(gè)次要Breaks之間的距離 |
date_minor_breaks="2 weeks" |
minor_breaks=scales::breaks_width("2 weeks") |
labels |
date_labels |
date_labels="%b %d"--格式化字符串旨怠,指定labels的格式 |
- |
上述表格中,第二列是第一列的補(bǔ)充蜈块,當(dāng)兩者同時(shí)存在時(shí)鉴腻,第二列贏。
格式化字符串的列表:
舉幾個(gè)有趣的例子來說明這些參數(shù)的妙用:
# 1. scales::breaks_width() 接受一個(gè)二值向量百揭,返回固定間隔的breaks
the_year <- as.Date(c("2021-01-01", "2021-12-31"))
set_breaks <- scales::breaks_width("1 month")
set_breaks(the_year)
# 返回值
# [1] "2021-01-01" "2021-02-01" "2021-03-01" "2021-04-01" "2021-05-01"
# [6] "2021-06-01" "2021-07-01" "2021-08-01" "2021-09-01" "2021-10-01"
#[11] "2021-11-01" "2021-12-01" "2022-01-01"
# 2. 返回每月的第7天
set_breaks <- scales::breaks_width("1 month",offset=6)
set_breaks(the_year)
# [1] "2021-01-07" "2021-02-07" "2021-03-07" "2021-04-07" "2021-05-07"
# [6] "2021-06-07" "2021-07-07" "2021-08-07" "2021-09-07" "2021-10-07"
#[11] "2021-11-07" "2021-12-07" "2022-01-07"
# 3. labels爽哎,年份只用后兩位數(shù)字表示
base <- ggplot(economics, aes(date, psavert)) +
geom_line(na.rm = TRUE) +
labs(x = NULL, y = NULL)
base + scale_x_date(date_breaks = "5 years")
base + scale_x_date(date_breaks = "5 years", date_labels = "%y")
# 4. labels,月份用縮寫器一,用與年份一起換行展示
lim <- as.Date(c("2004-01-01", "2005-01-01"))
base + scale_x_date(limits = lim, date_labels = "%b %y")
base + scale_x_date(limits = lim, date_labels = "%B\n%Y")
# 5. labels课锌,date_labels默認(rèn)調(diào)用的函數(shù)是scales::label_date(),顯式調(diào)用label_date_short()可以設(shè)置更簡潔友好的labels
base +
scale_x_date(
limits = lim,
labels = scales::label_date_short()
)
學(xué)習(xí)和使用Tips:記住主要參數(shù)的作用和用法祈秕,了解相關(guān)函數(shù)有哪些渺贤,使用的時(shí)候看查看幫助文檔即可。