R格中大小不等的记号
我试着画一张条形图,在4年的标记处画上记号,下面是日期,我得到了一些小记号,表示每年的每个季度R格中大小不等的记号,r,lattice,R,Lattice,我试着画一张条形图,在4年的标记处画上记号,下面是日期,我得到了一些小记号,表示每年的每个季度 barchart(V3~V1, data = differences,origin=0,box.ratio=40, lty=0,reference=TRUE,stack=TRUE,par.settings=list (axis.text=list(cex=1.5), axis.line = list(lwd=3)),scales=list(y=list(tick.number=8, rot=90,a
barchart(V3~V1, data = differences,origin=0,box.ratio=40, lty=0,reference=TRUE,stack=TRUE,par.settings=list (axis.text=list(cex=1.5), axis.line = list(lwd=3)),scales=list(y=list(tick.number=8, rot=90,alternating=1), x=list(at=c(6,18,30,42,54,66,78,90,102,114,126,138,150,162,174,186,198), labels=c("\n1996","","","","\n2000","","","","\n2004","","","","\n2008","","","","\n2012"),draw=TRUE,tck=1 )))
下面是一些示例数据
01/31/1996 -7.3667
02/29/1996 0.9413
03/31/1996 9.3252
04/30/1996 0.3147
05/31/1996 8.8593
06/30/1996 10.0297
07/31/1996 0.64i3
08/31/1996 2.1397
09/30/1996 0.6759
10/31/1996 -1.5579
11/30/1996 2.9493
.... ....
goes to 2012..
dd<-data.frame(
V1=seq(as.Date("1996-01-31"), as.Date("2006-12-31"), by="1 mon"),
V2=cumsum(rnorm(132))
)
现在这给了
| | | | | | | |
1996 2000 2004 and so on
所以我想让x轴看起来像
|||||||||||||||||||||||||||||
| | | | | | | |
1996 2000 2004 and so on
where | indicates tick of size 2 and | is size 1 for example
|
如何以不同的间隔指定两个不同大小的记号?谢谢
更新以下Flick先生的评论
对于我当前的设置,是否需要对tck使用ifelse语句,例如
barchart(V3~V1, data = differences,origin=0,box.ratio=40, lty=0,reference=TRUE,stack=TRUE,par.settings=list (axis.text=list(cex=1.5), axis.line = list(lwd=3)),scales=list(y=list(tick.number=8, rot=90,alternating=1), x=list(at=c(6,18,30,42,54,66,78,90,102,114,126,138,150,162,174,186,198), labels=c("\n1996","","","","\n2000","","","","\n2004","","","","\n2008","","","","\n2012"),draw=TRUE,tck=ifelse(some condition, 1,2 )))
其中某些条件可以参考数字列表6,18,30,42,54,66,78,901021141261381515162174186198。是否可以以某种方式将其作为数组传递,以便tck可以引用它。Ie array[i]%18==0,类似于这样,这个tck以某种方式在列表中迭代。下面是一些示例数据
01/31/1996 -7.3667
02/29/1996 0.9413
03/31/1996 9.3252
04/30/1996 0.3147
05/31/1996 8.8593
06/30/1996 10.0297
07/31/1996 0.64i3
08/31/1996 2.1397
09/30/1996 0.6759
10/31/1996 -1.5579
11/30/1996 2.9493
.... ....
goes to 2012..
dd<-data.frame(
V1=seq(as.Date("1996-01-31"), as.Date("2006-12-31"), by="1 mon"),
V2=cumsum(rnorm(132))
)
dd是的,其中一个措词和标记很差sorry@niels编辑现有帖子比更详细地转发同一个问题要好。请删除另一个,否则这将被标记为重复并消失。您应该能够在Lattice(书籍)网站上获得处理轴刻度的工作代码。第8章处理轴注释。嗨,这真的很酷,谢谢。但是你能解释一下你在做什么吗?我是R新手,对ex的符号非常困惑。ans$bottom$labels$labels和ans$bottom$labels$at在下面声明之前在第一部分中使用。什么是ats。我只是搞不清楚哪些是先声明的,它们是如何相互依赖的。这个任务被证明是相当困难的,所以如果你是R的新手,我不会太担心不能完全理解它。但是基本的想法是,我们称之为ansIt,看起来您也可能对SO有些陌生。当有人为您的问题提供解决您问题的答案时,您应该单击问题旁边的复选标记,将其标记为“正确”,并结束该问题(将其从未回答列表中删除)。如果它不能解决问题,最好在评论中让他们知道原因。好的,我知道了。有没有办法在我的原始条形图中使用ifelse,请查看我编辑的原始帖子。