控制ggplot2图中点的相对大小

时间:2010-10-06 07:35:14

标签: r ggplot2 plot

我需要绘制许多不同的瓷砖图,根据瓷砖的顶部有正方形和圆点 数据。不幸的是,我不能包括说明图片,但基本上情节由瓷砖组成,瓷砖上或其上有正方形和圆点。

这些图中的每一个在x方向和y方向上具有不同数量的瓦片。因此,我不能使用绝对单位(mm)来缩放点大小和框大小。有没有办法以相对的术语指定点的大小。例如,像geom_point(aes(x=x, y=y), size = 0.5 * tile_size())

以下错误代码段

  

df <- data.frame(x=factor(c(1:4), labels=c("a", "b", "c", "d")), y=factor(c(1:4), labels=c("f", "g", "h", "j")))
  p <- ggplot(data = df) + geom_tile(aes(x=x, y=y), fill="green", color="black")
  p <- p + opts(aspect.ratio=2)
  p <- p + geom_point(aes(x=x, y=y), color="red", size = 4, shape=15, color="red")
  p <- p + geom_point(aes(x=x, y=y), color="blue", size = 2)
  p <- p + scale_x_discrete("Variables") + scale_y_discrete("Time")
  show(p)

几乎实现了所需的功能,除非我调整图形窗口或pdf尺寸,相对于图块尺寸的点和框的相对大小会发生变化。特别是,点和框可能比它们绘制的图块大,这绝对是禁忌。

如果无法对点大小进行相对缩放,那么我想知道是否可以使用ggsave()或{{1来指定绘图区域的尺寸(没有轴标签,刻度等的绘图) }}。然后我可以自己做相对缩放。

1 个答案:

答案 0 :(得分:2)

我认为你想要以数据单位而不是物理单位来指定大小。这对于圆形和正方形来说有点棘手,因为它们实际上可能是数据空间中的椭圆和矩形(除非您使用coord_equal)。但是如果你想这样做,你可以自己生成字形并使用geom_polygon来绘制它们。