我有以下ggplot
library(ggplot2)
library(quantmod)
dat = data.frame(val = 1:20, qtr = as.yearqtr(seq(as.Date('2000-01-01'), length.out = 20, by = '3 months')))
ggplot(data = dat)
geom_line(aes(x = qtr, y = val))
geom_vline(xintercept = as.yearqtr(as.Date('2003-04-01')))
我想在我的垂直線與 x 軸相交的 x 軸上添加一個額外的刻度。相應的刻度標簽也將是手動的,即'Sep : 2003-04-01'。是否有任何功能可以ggplot實作這一目標?
謝謝你的幫助。
uj5u.com熱心網友回復:
您可以將定制的日期中斷定義為單獨的向量。
以及作為匹配文本向量的標簽,包括 x 截距刻度的定制文本。
調整軸文本以提高可讀性。
library(ggplot2)
library(quantmod)
intercept_date <- as.yearqtr(as.Date('2003-04-01'))
x_breaks <- c(as.yearqtr(seq(as.Date('2000-01-01'), length.out = 5, by = '12 months')), intercept_date)
x_labels <- c(as.character(as.yearqtr(seq(as.Date('2000-01-01'), length.out = 5, by = '12 months'))), "Sep : 2003-04-01")
ggplot(data = dat)
geom_line(aes(x = qtr, y = val))
geom_vline(xintercept = intercept_date)
scale_x_yearqtr(breaks = x_breaks,
labels = x_labels)
theme(axis.text.x = element_text(angle = 30, hjust = 1))

使用reprex v2.0.2創建于 2022-10-16
- 選項 2
回應評論:攔截中斷和標簽定義在scale_x_yearqtr:
ggplot(data = dat)
geom_line(aes(x = qtr, y = val))
geom_vline(xintercept = as.yearqtr(as.Date('2003-04-01')))
scale_x_yearqtr(breaks = c(as.yearqtr(seq(as.Date('2000-01-01'), length.out = 5, by = '12 months')), as.yearqtr(as.Date('2003-04-01'))),
labels = c(as.character(as.yearqtr(seq(as.Date('2000-01-01'), length.out = 5, by = '12 months'))), "Sep : 2003-04-01"))
theme(axis.text.x = element_text(angle = 30, hjust = 1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515276.html
標籤:rggplot2
上一篇:在R中透視選定的行
