2012-05-02 2 views
0

У меня есть следующие данные:VennDiagram для данных дает ошибку?

Set1 : 82 
Set2 : 44 
Set3 : 56 
Set4 : 53 
1,2  : 27 
1,3  : 37 
1,4  : 30 
2,3  : 22 
2,4  : 14 
3,4  : 19 
1,2,3 : 18 
1,2,4 : 13 
1,3,4 : 20 
2,3,4 : 11 
1,2,3,4 : 11 

1,2 означает Set1 . intersection . Set2, и так далее ...

Когда я пытаюсь сделать Диаграмма Венна для этого набора данных с помощью draw.quad.venn, я получаю следующее сообщение об ошибке,

Error in draw.quad.venn(82, 44, 56, 53, 27, 37, 30, 22, 14, 19, 18, 13, : 
Impossible: partial areas negative 

Я не понимаю, что я делаю неправильно?

UPDATE:

Ниже командной строки, что я использовал:

v.all <- draw.quad.venn(82, 44, 56, 53, 27, 37, 30, 22, 14, 19, 18, 13, 20, 11, 10, category = c("Set1", "Set2", "Set3", "Set4"), fill=c("red", "blue", "orange", "green"), cex = 0.75, cat.cex=0.85) 

Интересно, что когда я использую

v <- venneuler(c(A=82, B=44, C=56, D=53, "A&B"=27, "A&C"=37, "A&D"=30, "B&C"=22, "B&D"=14, "C&D"=19, "A&B&C"=18, "A&B&D"=13, "A&C&D"=20, "B&C&D"=11, "A&B&C&D"=11)) 
plot(v) 

Он работает !!

enter image description here

Так что теперь я действительно путают.

+1

Вы должны а) Покажите код, который вы используете для вызова 'draw.quad.venn' (как бы мы знаем, если вы звоните это неправильно?) И б) использовать' dput', чтобы показать воспроизводимую версию из этих данных (которые мы можем поместить в наш собственный код для тестирования) –

+0

является 'set1 83' общей площадью для одного? или общее пространство без перекрытия для set1? Если это общее пространство меньше, чем площадь, которая перекрывается с множеством 2,3 и 4. –

+0

@ user1317221, нет ничего плохого в том, что 82 - это общая площадь, так как 2,3,4 не разделены. Моя ставка, не увидев '? Draw.quad.venn', состоит в том, что его аргументы не в порядке или (принимая ваш намек), функция хочет не перекрывающиеся пространства, а не полные пробелы. –

ответ

1

Ограничения, в коде прямо вперед , Здесь это точно;

 if (any(a1 < 0, a2 < 0, a3 < 0, a4 < 0, a5 < 0, a6 < 0, a7 < 
      0, a8 < 0, a9 < 0, a10 < 0, a11 < 0, a12 < 0, a13 < 0, 
      a14 < 0, a15 < 0)) { 
      stop("Impossible: partial areas negative") 
     } 
1

Без вашего кода трудно помочь. Возможно, невозможно сделать ваши данные из-за того, что он должен перекрываться. Может быть, у вас есть ошибки в данных?

Однако если это вопрос код, используя некоторые из ваших данных и другой пакет я могу предложить альтернативный маршрут:

require(venneuler) 
m <- as.matrix(c(
0, 27, 37, 30, 
27, 0, 22, 14, 
37 ,22, 0, 19, 
30,14,19,0)byrow=T,nrow=3) 
v = venneuler(m) 
plot(v) 

который дает gives: http://i48.tinypic.com/15qdg1u.png

+1

+1 для приятного участка. Я не знал об этом пакете. – Mikko

Смежные вопросы