【问题标题】:Controlling relative size of points in ggplot2 plots控制 ggplot2 图中点的相对大小
【发布时间】:2010-10-06 07:35:14
【问题描述】:

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

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

以下buggy代码sn-p

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() 指定绘图区域的尺寸(没有轴标签、刻度等的绘图)。然后我可以自己做相对缩放。

【问题讨论】:

  • 'Sven:geom_point 代码应该可以工作。有什么问题?
  • 如果它不工作,给我们一些玩具代码来玩,并说明你得到什么和你想得到什么。

标签: r ggplot2 plot


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多