如何在R的lattice xyplot中更改条纹的文本

3

我正在尝试使用直方图函数来绘制一些数据的密度。 数据的样本格式如下:

   library(lattice)
   index<-c(1,1,1,2,2,2,2)
   freq<-c(3,4,6,3,6,2,2)
   D<-data.frame(index,freq)
   histogram(~D$freq|D$index)

我希望每个直方图的条形文本都打印出索引号(例如,在此示例中,分别在直方图顶部打印1和2,而不是当前打印的D$index),但我不知道如何简单地实现它。(我知道可能要使用strip.custom(),并正确更改var.name,但我不知道如何根据我的索引进行迭代)。
2个回答

4

如果您将索引变量更改为因子,则会得到预期的默认行为,即在条形图上打印shingle级别:

library(lattice)
    index<-factor(c(1,1,1,2,2,2,2))
    freq<-c(3,4,6,3,6,2,2)
    D<-data.frame(index,freq)
    histogram(~D$freq|D$index)

只是为了好玩,您可以在strip.default中玩弄样式变量:

histogram(~freq|index, data=D, strip = 
      function(..., style){ strip.default(..., style = 4)}  )

谢谢,看起来问题出在索引是一个整数的事实上。 - user622368

2

index转换为因子(factor)

index <- c(1,1,1,2,2,2,2)
freq <- c(3,4,6,3,6,2,2)
D <- data.frame(index=factor(index), freq)
histogram(~D$freq|D$index)

带有索引的直方图

通过histogram(~freq|index, D)方式调用lattice函数可以更好地呈现效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接