3

当我在与orgeom_abline相同的情节中使用时出现错误,我不明白为什么。例如facet_wrapfacet_grid

# Example data
ex <- data.frame(x=1:10, y=1:10, f=gl(2, 5))

ggplot() + 
  geom_point(data=ex, aes(x=x, y=y)) +
  geom_abline(slope=1, intercept=0) + 
  facet_wrap(~f)

原因Error in if (empty(data)) { : missing value where TRUE/FALSE needed

上面我在geom_point图层中设置了数据,因为稍后我将添加来自不同数据帧的数据。这与问题有关,因为当我在基础层中设置数据时,我得到一个不同的错误:

ggplot(ex, aes(x=x, y=y)) + 
  geom_abline(slope=1, intercept=0) +
  facet_wrap(~f)

Error in as.environment(where) : 'where' is missing

解决方法

有一个简单的解决方法:如果我制作一个数据框来定义一条 1:1 线并使用它绘制它,geom_line我得到的图基本上与我从geom_abline...

# Define a 1:1 line with data
one_to_one <- data.frame(xO=range(ex$totalcells), yO=range(ex$totalcells))

# Plot the 1:1 line with geom_line
ggplot() + 
  geom_point(data=ex, aes(x=x, y=y)) +
  geom_line(data=one_to_one, aes(x=xO, y=yO), colour="black") +
  facet_wrap(~f)

在此处输入图像描述

...所以这个问题更多的是关于为什么会出现这些错误(以及它们是否代表错误或预期的行为),而不是如何解决问题。

4

1 回答 1

2

以下作品:

ggplot(ex, aes(x=x, y=y)) + geom_point() + 
  geom_abline(slope=1, intercept=0) +
  facet_wrap(~f)

请注意geom_point()我根据您的第二个示例添加的附加内容。

于 2013-09-01T05:19:07.820 回答