Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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_Lattice - Fatal编程技术网

R格中大小不等的记号

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

我试着画一张条形图,在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,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,请查看我编辑的原始帖子。