2010-10-06 53 views
4

我需要绘制许多不同的图块图,根据 数据,图块顶部有正方形和点。不幸的是,我不能包括说明图片,但基本上情节包括瓷砖,无论是否有正方形和点。控制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()来指定绘图区域的尺寸(无轴标签的绘图,刻度等)。然后我可以自己做相对缩放。

+1

'Sven:'geom_point'代码应该可以工作。有什么问题? – 2010-10-06 09:25:35

+0

如果它不起作用,给我们一些玩具代码玩,并陈述你得到什么,你想得到什么。 – 2010-10-06 10:03:41

回答

2

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

相关问题