使用ggplot2在图中缺少数据

时间:2016-04-05 19:12:14

标签: r plot ggplot2

我对ggplot2有点困惑。我绘制了我的数据,并在绘图中有一些缺失的数据,但没有在图例中。我实际上有40个组(FID)要绘制,有些缺失。我的代码是:

Data48a <- read.table("Data48a.eigenvec", header = T, sep = "")

PlotData48a <- ggplot(Data48a, aes(x= PC1,y= PC2, group= FID, shape= FID, color= FID))

PlotData48a + geom_point(aes(color=FID)) +
   geom_hline(aes(yintercept=0)) + geom_vline(aes(xintercept=0))+
   scale_shape_manual(values=1:nlevels(Data48a$FID)) +
   scale_color_manual(values=1:nlevels(Data48a$FID)) + 
   coord_equal(ratio = 1)

这是错误:

In grid.Call.graphics(L_points, x$x, x$y, x$pch, x$size) : unimplemented pch value '28'     

我的数据如下:

FID IID PC1 PC2 PC3    
Ami AX-AM-013607-1-01 0.0302889 -0.0236855 0.0294569    
Ami AX-AM-013608-1-01 0.0346382 -0.0232841 0.0175366    
Ami AX-AM-013609-1-01 0.0396438 -0.0157996 0.0163948    
Ami AX-AM-013610-1-01 0.0386903 -0.017313 0.0146025    
Ami AX-AM-013611-1-01 0.0382764 -0.0151733 0.0222798    
Ami AX-AM-013613-1-01 0.0416853 -0.00826403 0.0245685    
Ami AX-AM-013614-1-01 0.0388888 -0.0113679 0.0281065    
Ami AX-AM-013615-1-01 0.0438035 -0.0102871 0.0156296    
Ami AX-AM-013616-1-01 0.0364263 -0.0211585 0.0246802    
BatakKaro ID-KR-000001-1-01 0.0321929 0.00520535 0.00480784    
BatakKaro ID-KR-000002-1-01 0.0345291 -0.00101008 -0.00264379    
BatakKaro ID-KR-000012-1-01 0.0352078 -0.000998926 -0.00847158    
BatakKaro ID-KR-000014-1-01 0.0306035 -0.00150602 -0.00365927

2 个答案:

答案 0 :(得分:0)

我不知道这是否会解决您的整个问题,但这应该突出显示您的错误来源。

您正在尝试绘制40个级别的数据或组,但只有25个绘图字符(pch)。为了消除错误,我认为你必须将组数限制在25或更少。

require(ggplot2)

# no error
xx = 1:25
ggplot() + geom_point(aes(x = xx,y = xx), col=xx,shape=xx)

# error
xx = 1:26
ggplot() + geom_point(aes(x = xx,y = xx), col=xx,shape=xx)

答案 1 :(得分:0)

未实现的pch值'28':

合法的形状值是数字0到25,数字是32到127。

看起来你有40个形状(0..39)?

另见http://sape.inf.usi.ch/quick-reference/ggplot2/shape