ggplot,绘制数据子集,ERROR

时间:2013-07-17 17:38:34

标签: r ggplot2 subset

我有一个看似简单的问题,尽管如此,我还是无法解决。我想在ggplot中只绘制data.frame的一个子集,并且我一直收到错误。这是我的代码(使用完整的数据集):

ggplot(a2.25, aes(x=V1, y=V2)) + geom_point() +
  theme(plot.margin = unit(c(0,0,0,0), "lines"),
        plot.background = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()) +
  ggtitle("a2_25")

但是当我尝试仅通过以下方式绘制数据的子集时:

ggplot(a2.25, aes(x=V1[2:24], y=V2[2:24])) + geom_point() +
  theme(plot.margin = unit(c(0,0,0,0), "lines"),
        plot.background = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()) +
  ggtitle("a2_25")

我收到以下错误消息:“data.frame中的错误(x = c(0.04,0.08,0.12,0.16,0.2,0.24,0.28,0.32,:   参数意味着不同的行数:23,26“ 但是,该文件由26个obs组成。 2个变量。当我分别检查每列的长度时,每个列中有26个观察值。

有谁知道导致此错误的原因/克服它的简单方法?我正在对我的数据进行探索性分析,并且有大量文件,并且将在完整数据集和它的子集之间来回转换,因此手动缩短文件将非常繁琐。

谢谢!

以下是样本数据(dput):

structure(list(V1 = c(0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 
0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 
0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1), V2 = c(0.9999396, 1.828642e-05, 
2.125182e-05, 1.369786e-05, 6.395666e-06, 7.471323e-07, 9.306843e-09, 
1.025577e-11, 1.225776e-15, 2.306844e-20, 1.021365e-25, 1.41806e-31, 
6.450008e-38, 7.751817e-45, 1.698149e-52, 4.40356e-61, 8.356799e-71, 
6.445585e-82, 9.108883e-95, 7.374944e-110, 5.603281e-128, 1.908444e-150, 
9.635286e-180, 1.938155e-221, 2.781784e-293, 0)), .Names = c("V1", 
"V2"), class = "data.frame", row.names = c(NA, -26L))

2 个答案:

答案 0 :(得分:3)

如果您需要对数据进行子集化,则应使用数据框a2.25而不是aes()内的列。

ggplot(a2.25[2:24,], aes(x=V1, y=V2)) + geom_point()

答案 1 :(得分:2)

我猜a2.25是您的数据集名称?

尝试对数据进行子集化而不是单个变量。

例如,对于行2:24,请尝试

ggplot(a2.25[2:24,], aes(x=V1, y=V2)) + geom_point() +
  theme(plot.margin = unit(c(0,0,0,0), "lines"),
        plot.background = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()) +
  ggtitle("a2_25")