我是初学者ggplot2.我无法用于date_minor_breaks在x轴上显示季度"滴答".
这是我的代码:
x<-c(seq(1:12))
time<-c("2010Q1","2010Q2","2010Q3","2010Q4","2011Q1","2011Q2", "2011Q3","2011Q4","2012Q1","2012Q2","2012Q3","2012Q4")
z<-data.frame(type = x,time = time)
z$time = as.yearqtr(z$time)
z$time = as.Date(z$time)
ggplot(data = z, aes(x=time,y=type)) +
geom_point() +
scale_x_date(date_labels = "%Y",date_minor_breaks = "3 months",name = "Year") +
theme_tufte() +
theme(legend.position = "none")
Run Code Online (Sandbox Code Playgroud)
我在ggplot2和https://github.com/hadley/ggplot2/issues/542上使用scale_x_date在 SO 格式化日期上研究了这个主题,发现在这个主题上报告了一些问题.但是,我并没有完全遵循关于更改的对话,ggplot2因为自从我开始使用ggplot2以来只有6天.
这是我得到的图表(它没有任何刻度)......
这是一个从Excel生成的"刻度线"示例图.请忽略值,因为我创建这个Excel图表的目的是为了展示我正在寻找的东西 - 即"季度滴答".我很感激你的帮助.
您可能必须每三个月进行一次重大休息,然后用空白填充标签,以产生主要(标记)和次要(未标记)标记的错觉.请参阅此答案以获取另一个示例
首先在每个季度手动打勾刻度线.
breaks_qtr = seq(from = min(z$time), to = max(z$time), by = "3 months")
Run Code Online (Sandbox Code Playgroud)
然后制作年份标签,并在每个数字后用三个空格填充这些标签.
labels_year = format(seq(from = min(z$time), to = max(z$time), by = "1 year"), "%Y")
labs = c(sapply(labels_year, function(x) {
c(x, rep("", 3))
}))
Run Code Online (Sandbox Code Playgroud)
现在使用break和带有labels和breaks参数的标签scale_x_date.请注意,我没有使用date_labels和date_breaks为此.
ggplot(data = z, aes(x=time,y=type)) +
geom_point() +
scale_x_date(labels = labs, breaks = breaks_qtr, name = "Year") +
theme_tufte() +
theme(legend.position = "none")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |