Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将多年绘图上的日期显示为月份名称?_R_Date_Plot_Graph_Axis - Fatal编程技术网

R 如何将多年绘图上的日期显示为月份名称?

R 如何将多年绘图上的日期显示为月份名称?,r,date,plot,graph,axis,R,Date,Plot,Graph,Axis,这是代码,datereal从2020-02-01到2020-06-30有517个日期值。 根据图像生成绘图。 理想情况下,我希望每个月和交替月份都打勾,即2月20日、4月20日……5月21日、7月21日 dev.new(width=12, height=7.5) # Adjust the margin of plot (bottom,left,top,right) par(mar=c(5, 5, 3, 7)) plot(datereal, base9, type = "l"

这是代码,datereal从2020-02-01到2020-06-30有517个日期值。 根据图像生成绘图。 理想情况下,我希望每个月和交替月份都打勾,即2月20日、4月20日……5月21日、7月21日

dev.new(width=12, height=7.5) 
# Adjust the margin of plot (bottom,left,top,right)
par(mar=c(5, 5, 3, 7))
plot(datereal, base9, type = "l", lwd=2, col = "blue", xaxt = "n", xlab="Month",ylab="Daily new cases ")
#plot(datereal, base9, type = "l", lwd=2, col = "blue", xaxt = "n", xlab="              2020                Month                     2021",
#ylab="Daily new cases ")
axis.Date(1, datereal, 
         at = seq(as.Date("2020-02-01"), as.Date("2021-06-01"), by = "1 month"))

为了在每个月的第一天获取标签位置,我们使用
substr

一种方法是使用两个月的间隔,如您所示。为此,我们可以生成序列1,2,3。。。沿着日期,使用
seq_沿着
,并查看模2中的零位置,以获得子集ID
ID
。要获取月-年格式,我们使用
格式=
(有关选项,请参阅
?strftime

注意,您似乎正在使用绘图窗口并通过鼠标单击保存图像。如果重新缩放窗口,标签可能会消失。例如,更好的选择是使用
png
设备,如中所述


数据:


base9为了在每个月的第一天获取标签位置,我们使用
substr

一种方法是使用两个月的间隔,如您所示。为此,我们可以生成序列1,2,3。。。沿着日期,使用
seq_沿着
,并查看模2中的零位置,以获得子集ID
ID
。要获取月-年格式,我们使用
格式=
(有关选项,请参阅
?strftime

注意,您似乎正在使用绘图窗口并通过鼠标单击保存图像。如果重新缩放窗口,标签可能会消失。例如,更好的选择是使用
png
设备,如中所述


数据:


base9尝试在
at=
参数后插入
,format=strftime(dte,“%b”)
。有关更多选项,请参见
?strftime
。除了在何处打印外,还需要指定要在轴上打印的内容。请尝试在
at=
参数后插入
,format=strftime(dte,“%b”)
。有关更多选项,请参见
?strftime
。除了在何处打印外,还需要指定要在轴上打印的内容。
op <- par(mar=c(5, 5, 3, 7))  ## set par
plot(datereal, base9, type="l", lwd=2, col="blue", xaxt="n", xlab="Month",
     ylab="Daily new cases")
which(substr(datereal, 9, 10) == "01")
labs <- datereal[substr(datereal, 9, 10) == "01"]
ids <- seq_along(labs)[(seq_along(labs) + 1) %% 2 == 0]
axis.Date(1, at=labs[ids], format="%b %y", cex.axis=.9)
par(op)  ## reset par
op <- par(mar=c(5, 5, 3, 7))
plot(datereal, base9, type="l", lwd=2, col="blue", xaxt="n", xlab="Month",
     ylab="Daily new cases")
axis(1, at=labs, labels=FALSE)
mtext(strftime(labs, format="%b %y"), side=1, line=.75, at=labs, las=2, cex=.8)
par(op)
base9 <- 5e5*dnorm(seq(-2, 14, length=516), 10, 4)
datereal <- seq(as.Date("2020-02-01"), as.Date("2021-06-30"), "day")