r - 以 R 为基数的日期的长轴和短轴刻度

标签 r plot

我想在日期格式的 x 轴上创建主要刻度和次要刻度,以便每第 3 个刻度(代表每 3 个月)我就有一个主要刻度和一个标签。

这是我迄今为止所拥有的可重现的示例,目前具有统一的刻度。

month<-c("2010-08-01", "2010-09-01", "2010-10-01", "2010-12-01", "2011-01-01", "2011-02-01",
     "2011-03-01", "2011-04-01", "2011-05-01", "2011-06-01", "2011-07-01", "2011-09-01",
     "2011-11-01", "2012-01-01", "2012-02-01", "2012-03-01", "2012-05-01", "2012-07-01",
     "2012-08-01")
prevalence<-c(10,7.5,5.2,3.5,6.4,2.7,5.8,13.2,4.3,4.7,6.4,4.4,5.2,3.3,1.0,3.1,9.9,33.3,1.0)
df<-data.frame(month, prevalence)
df$month<-as.Date(df$month)
plot(df$month, df$prevalence,lwd = 1.8, ylim=c(0,40),pch=16, bty='n', xaxt='n', 
 ylab="Prevalence (%)", xlab="Month",col='black',cex=1,cex.lab=1.0,cex.axis=1.0)
at <- seq(from = min(df$month), to = max(df$month), by = "month") # produces a regular sequence of        dates  
axis.Date(side = 1, at = at, labels = FALSE, tck=-0.04) 
axis(side=2, at=c(0,10,20,30,40,50), labels=c("", "", "", "", "", ""), tck=-0.04)
lines(df$month, df$prevalence, col='black', lwd=1.8)  

我尝试过使用magicaxis包,但它似乎不允许使用日期格式的轴。

最佳答案

作为快速修复,您可以使用重复 axis.Date 调用。

at1 <- at[c(TRUE, TRUE, FALSE)]
axis.Date(side = 1, at = at1, labels = FALSE, tck=-0.02) 

at2 <- at[c(FALSE, FALSE, TRUE)]
axis.Date(side = 1, at = at2, labels = TRUE, tck=-0.04) 

TRUEFALSE 用于对向量 at 进行子集化

enter image description here

关于r - 以 R 为基数的日期的长轴和短轴刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509030/

相关文章:

r - tm 包中的 StemDocment 不适用于过去时词

r - 当前不存在哪些有用的R包?

python - Matplotlib - 动画 : How do I do two coupled animations within two subplots?

python - 删除 Xarray 子图中的共享颜色条

plot - Julia 中的条形图 : changing location of xticks

r - R中的计算精度级别

r - 如何在 dplyr 中分组并获取离散列的相反值?

在 OSX Yosemite 中加载时出现 Rcmdr 错误

python - 何时使用 cla()、clf() 或 close() 清除绘图

r - 在 R 中使用 facet_wrap 规范化 ggplot2 密度