将数字轴添加到镶嵌图

时间:2016-01-17 13:33:42

标签: r plot axis mosaic-plot

我正在使用马赛克图(使用mosaicplot())绘制数据,并考虑在一个维度上添加数字轴以阐明不同组的大小。但是,我不明白绘图单元如何与轴对齐,因为它似乎在图形设备上的范围从大约0.2到0.98(或类似的东西)。这是一个可重复的例子:

mosaicplot(Titanic, main = "Survival on the Titanic", off = 0)
axis(1, seq(0, 1, by = 0.1))

注意0-1 x轴实际上如何延伸到图的左侧和右侧。是否可以添加一组正确缩放的轴标签?

enter image description here

1 个答案:

答案 0 :(得分:3)

par(mfrow = c(2,1), mar = c(3,4,2,1))
mp(Titanic)
mp(Titanic, off = 0)

enter image description here

这个并不难解决,但有几件事情正在发生:

  1. 显然,轴不是从0开始,也不是以pretty得到的圆形结束(用于计算,绘制和标记刻度和标签)。从这些行中,我们可以看到沿x的多边形从50到950(取决于为cex.axis设置的内容):
  2.   x1 <- 30 + 20 * cex.axis/0.66
      y1 <- 5
      x2 <- 950
      y2 <- 1000 - x1
    
    1. 其次,当函数退出时,绘图设备就完成了,这就是为什么你的尝试范围从0到1而不是pretty(c(50, 950)),我没有看到任何通过mosaicplot之类的东西的方式{/ 1}}或new
    2.   

      警告讯息:   在mosaicplot.default中(泰坦尼克号,新= TRUE):     额外的参数'new'将被忽视

      所以我认为没有编辑源代码就不会有一个简单的修复(因为看起来你必须回溯你的上一个剧情已经移动原点的距离以及它如何转换为一个新的窗口可能不是每个情节都一样,等等等等。

      我唯一改变的是添加最后三行。

      add