当我设置x和y限制时,ggplot会删除我的所有数据

时间:2013-01-23 17:48:41

标签: r ggplot2

我正在使用R从表中生成一个图。

我使用了a <- read.table("table.txt")命令并且运行正常。当我输入“a”时,它会正确地打印出我的全表。

我也输入library(ggplot2)所以我可以使用ggplot。

这是我的第一个命令:

ggplot(a, aes(x=V2, y=V5, group=V7)) + 
   geom_point(size=4, aes(col=V7)) + xlab("Rank") + 
   ylab("Inter-helix angle (Degree)") + 
   opts(legend.position="none") 

此命令生成了所有点,但是当我将xlim(0,110) + ylim(0,110)添加到结尾时,它给了我一个警告并说“删除了包含缺失值的101行”(我的表长101行)。生成的图是完全空的。发生了什么事?

1 个答案:

答案 0 :(得分:2)

我猜你的数据可能超出了你在xlimylim指定的范围,例如:

 library(ggplot2)
 df <- data.frame(x=1:10,y=1:10)
 ggplot(a, aes(x=x, y=y)) + 
 geom_point(size=4) + xlab("Rank") + 
 ylab("Inter-helix angle (Degree)")

工作正常,但是:

 ggplot(df, aes(x=x, y=y)) + 
 geom_point(size=4) + xlab("Rank") + 
 ylab("Inter-helix angle (Degree)") + xlim(0,0.1) + ylim(0,0.1)

会出现与您相同的错误,因为00.1

之间没有值
  

警告讯息:   删除了包含缺失值的10行(geom_point)。

虽然没有您的数据,但这只是最可能的答案。顺便说一下,民间倾向于使用coord_cartesian

ggplot(df, aes(x=x, y=y)) + 
 geom_point(size=4) + xlab("Rank") + 
 ylab("Inter-helix angle (Degree)") + coord_cartesian(xlim=c(0,0.1)) + 
coord_cartesian(ylim=c(0,0.1))