0

我有一个来自以下脚本的情节。

require(ggplot2)

df.shape <- data.frame(
AX = runif(10),
AY = runif(10),
BX = runif(10, 2, 3),
BY = runif(10, 2, 3)
)

p <- ggplot(df.shape)
p <- p + geom_point(aes(x = AX, y = AY, shape = 15)) + 
    geom_point(aes(x = BX, y = BY, shape = 19)) + 
    scale_shape_identity() + 
    guides(shape = guide_legend(override.aes = list(shape = 15, shape = 19)) )
print(p)

这不会产生图例,描述哪个形状是“A”,哪个形状是“B”。请注意,正方形和圆形可能彼此靠近,因此我通常无法根据位置定义变量。如何显示“形状”图例?

4

1 回答 1

3

我会使用以下方法以长格式重塑我的数据reshape

dt <- reshape(df.shape ,direction='long', varying=list(c(1, 3), c(2, 4)),
        ,v.names = c('X','Y'), times = c('A','B'))

然后我像这样简单地绘制它

 ggplot(dt) +
     geom_point(aes(x = X, y = Y, shape = time),size=5) +
     scale_shape_manual(values=c(15,19))

在此处输入图像描述

于 2013-07-18T01:44:37.970 回答