12

在这两个图中,点看起来不同,但为什么呢?

mya <- data.frame(a=1:100)

ggplot() +
  geom_path(data=mya, aes(x=a, y=a, colour=2, size=seq(0.1,10,0.1))) +
  geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) +
  theme_bw() +
  theme(text=element_text(size=11))

ggplot() +
  geom_path(data=mya, aes(x=a, y=a, colour=2, size=1)) +
  geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) +
  theme_bw() +
  theme(text=element_text(size=11))

?aes_linetype_size_shape解释...

 # Size examples
 # Should be specified with a numerical value (in millimetres),
 # or from a variable source

但在我的代码中,它看起来不同。

4

1 回答 1

15

您的代码中发生了一些令人困惑的事情。您似乎以aes非预期的方式使用该功能。除了这个size问题,你还有多个传说,我认为 ggplot 对颜色感到困惑。

aes函数用于将美学映射到数据中的变量,但您正在使用它将美学设置为常数。此外,您正在使用该aes功能设置两个单独的美学。即使您设置size为常数,ggplot2 也不喜欢两个单独的(路径和点)大小映射。此外,您对颜色映射执行相同的操作。

sizecolour设置为常数值,因此将它们移到aes函数之外。此外,关于第一个图中的路径,将变量添加到数据框中size可能更安全。size(我已经稍微修改了您的数据,以便点和路径都可见。)正如预期的那样,在第一个图中绘制了一个图例。

    library(ggplot2)
mya <- data.frame(a=1:10, size = seq(10, 1, -1))

ggplot() +
  geom_path(data=mya, aes(x=a, y=a, size=size), colour = 2) +
  geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) +
  theme_bw() +
  theme(text=element_text(size=11))

ggplot() +
  geom_path(data=mya, aes(x=a, y=a), colour = 2, size = 1) +
  geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) +
  theme_bw() +
  theme(text=element_text(size=11))

在此处输入图像描述

于 2012-11-25T23:34:00.320 回答