控制ggplot2图中点的相对大小

我需要绘制许多不同的瓷砖图,根据瓷砖的顶部有正方形和圆点

数据.不幸的是,我不能包括说明图片,但基本上情节由瓷砖组成,瓷砖上或其上有正方形和圆点.

这些图中的每一个在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()或pdf()指定绘图区域的尺寸(没有轴标签,刻度等的绘图).然后我可以自己做相对缩放.

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

点赞