Как эллипс данных может быть наложен на ggplot2 scatterplot?

У меня есть функция R, которая производит 95% замещающих знаков уверенности для scatterplots. Вывод похож на это, имея значение по умолчанию 50 точек для каждого эллипса (50 строк):

           [,1]         [,2]
 [1,]  0.097733810  0.044957994
 [2,]  0.084433494  0.050337990
 [3,]  0.069746783  0.054891438

Я хотел бы наложить много таких замещающих знаков для каждого уровня фактора, названного 'сайтом' на a ggplot2 scatterplot, произведенный из этой команды:

> plat1 <- ggplot(mapping=aes(shape=site, size=geom), shape=factor(site)); plat1 + geom_point(aes(x=PC1.1,y=PC2.1))

Это выполняется на наборе данных, названном dflat который похож на это:

site      geom         PC1.1        PC2.1       PC3.1        PC1.2       PC2.2
1 Buhlen 1259.5649 -0.0387975838 -0.022889782  0.01355317  0.008705276  0.02441577
2 Buhlen  653.6607 -0.0009398704 -0.013076251  0.02898955 -0.001345149  0.03133990

Результат прекрасен, но когда я пытаюсь добавить эллипс (скажем, для этого сайта, названного "Buhlen"):

> plat1 + geom_point(aes(x=PC1.1,y=PC2.1)) + geom_path(data=subset(dflat, site="Buhlen"),mapping=aes(x=ELLI(PC1.1,PC2.1)[,1],y=ELLI(PC1.1,PC2.1)[,2]))

Я получаю сообщение об ошибке: "Error in data.frame(x = c(0.0977338099339815, 0.0844334944904515, 0.0697467834016782, : arguments imply differing number of rows: 50, 211

Мне удалось зафиксировать это в прошлом, но я не могу помнить как. Кажется, что geom_path полагается на те же точки вместо того, чтобы вывести новые на печать. Любая справка ценилась бы.

21
задан radu 7 March 2010 в 17:12
поделиться