为R中的x值指定名称

为R中的x值指定名称,r,plot,time-series,axis,R,Plot,Time Series,Axis,我需要为百分比增长时间序列图的x值指定某些名称。我知道如何删除这些值,但我希望用名称“08-09 q1”、“08-08 q2”、“08-09 q3”、“08-09 q4”、“09-10 q1”、…、“14-15 q2”替换它们,以便x轴上的每个值都直接位于绘制点的下方。我该怎么做 plot.ts(percentagegrowth1,xaxt="n",xlab="Quarter",ylab="Percentage growth",main="Year-over-Year Quarterly Per

我需要为百分比增长时间序列图的x值指定某些名称。我知道如何删除这些值,但我希望用名称“08-09 q1”、“08-08 q2”、“08-09 q3”、“08-09 q4”、“09-10 q1”、…、“14-15 q2”替换它们,以便x轴上的每个值都直接位于绘制点的下方。我该怎么做

plot.ts(percentagegrowth1,xaxt="n",xlab="Quarter",ylab="Percentage growth",main="Year-over-Year Quarterly Percentage Growth") 

for(i in 1:length(percentagegrowth1r))  
{
  text(x=i,y=percentagegrowth1r[i],labels=percentagegrowth1r[i],cex=0.5,font=2,pos=1)  
  text(x=i,y=percentagegrowth1r[i],labels=percentagegrowth1r[i],cex=0.5,font=2,pos=3)
} 

lines(percentf1,col="red")  
points(percentagegrowth1r,col="blue")  
dates<-c(1.1,1.2,1.3,1.4,2.1,2.2,2.3,2.4,3.1,3.2,3.3,3.4,4.1,4.2,4.3,4.4,5.1,5.2,5.3,5.4,6.1,6.2,6.3,6.4,7.1,7.2) 

for(i in 1:length(dates)) { 
  axis(1,at=i,labels=dates[i]) 
} 

legend("topright",c("x-values=Year comparison.Quarter e.g 1.1=08-09 q1","Red=Forecasted data"))  
plot.ts(percentagegrowth1,xaxt=“n”,xlab=“季度”,ylab=“百分比增长”,main=“同比季度百分比增长”)
对于(1中的i:长度(百分比增长1r))
{
文本(x=i,y=percentagegrowth1r[i],标签=percentagegrowth1r[i],cex=0.5,font=2,pos=1)
文本(x=i,y=percentagegrowth1r[i],标签=percentagegrowth1r[i],cex=0.5,font=2,pos=3)
} 
行(百分比F1,col=“红色”)
点数(百分比增长1R,col=“蓝色”)

日期问题似乎是生成给定年份和季度的标签。这是怎么回事

yr=function(i){paste(sprintf("%02d-%02d",i,i+1))}
这使我们可以生成任意年份标签:

yr(6:14)
[1] "06-07" "07-08" "08-09" "09-10" "10-11" "11-12" "12-13" "13-14" "14-15"
那就简单了:

qlabels =
function(yrs){
  q = rep(1:4, length(yrs))
  sprintf("%s q%s", rep(yr(yrs),rep(4,length(yrs))), q)
}
制作:

> qlabels(8)
[1] "08-09 q1" "08-09 q2" "08-09 q3" "08-09 q4"
> qlabels(8:10)
 [1] "08-09 q1" "08-09 q2" "08-09 q3" "08-09 q4" "09-10 q1" "09-10 q2"
 [7] "09-10 q3" "09-10 q4" "10-11 q1" "10-11 q2" "10-11 q3" "10-11 q4"
然后添加轴标签,缩短序列,因为结束于q2:

> plot.ts(percentagegrowth1r,xaxt="n",xlab="Quarter",ylab="Percentage growth",main="Year-over-Year Quarterly Percentage Growth") 
> axis(1,1:length(dates), qlabels(8:14)[1:26])
axis
不会绘制所有值,因为它们在没有重叠的情况下不适合。您可以调整
cex
参数:

> plot.ts(percentagegrowth1r,xaxt="n",xlab="Quarter",ylab="Percentage growth",main="Year-over-Year Quarterly Percentage Growth") 
> par(cex=0.5)
> axis(1,1:length(dates), qlabels(8:14)[1:26])

我找到了答案,以防其他人也有同样的问题:)

首先为打印向量中的每个数字指定一个名称:

names(percentagegrowth1)<-c("08-09 q1","08-09 q2","08-09 q3","08-09 q4","09-10 q1","09-10 q2","09-10 q3","09-10 q4","10-11 q1","10-11 q2","10-11 q3","10-11 q4","11-12 q1","11-12 q2","11-12 q3","11-12 q4","12-13 q1","12-13 q2","12-13 q3","12-13 q4","13-14 q1","13-14 q2","13-14 q3","13-14 q4","14-15 q1","14-15 q2")
然后指定x值:

axis(1,at=seq(1,length(percentagegrowth1),by=1),labels=names(percentagegrowth1))

我不知道你在问什么。请提供一个或抱歉这是我第一次使用这个网站。NP,只需按照我上面提供的链接,尽快重写你的问题。否则它将被社区关闭。我已经编辑了它,我希望这能更好地解释我的意思,我们不关心绘图数据是如何生成的,而关心实际涉及的值和类是什么。似乎您应该能够发布
dput(percentagegrowth1)
来共享实际绘制的时间序列对象。在@Davidernburg提供的“可复制示例”链接中可以找到实现这一点的简单方法。
plotrix::staxlab
也可能有用
axis(1,at=seq(1,length(percentagegrowth1),by=1),labels=names(percentagegrowth1))