是否有一种方法可以强制R将小数点放在茎叶图中的管道处



假设数据为:

y=rpois(100,50)
z=rpois(50,500)
x=rpois(5,1000)
v=c(y,z,x)

当我执行stem(v)时,它将小数点放在|右边两位。我试过使用scalewidth,但似乎无法在|上强制小数。有办法做到这一点吗?如果是,怎么做?

嗯,不,因为你的数据是31和1021之间(对于我的随机数)。stem的概念就是尽可能多地展示数据点。如果小数点在柱状图上,那么柱状图的右边就不会有任何东西了,因为你得到的是整数…

stem(v/100)

做你说的,但我不确定这是你想要的…

这是一个hack。它的工作原理是:(1)捕获stem的输出,(2)将小数点放在|的右边,(3)将行写回控制台。

stem_with_dot <- function(x, ...){
   h = capture.output(stem(x, ...))
   stem_plot = sub("\| ([0-9]{2})", "| \1.", h)
   writeLines(stem_plot)
   return(invisible)
}

最新更新