31
Venn diagrams Technical details and regression checks Jonathan Swinton 23 rd September, 2009 • Try CR for weight=0 • Plot faces for Chow-Ruskey • General set membership • implement not showing dark matter eg Fig 1 • AWFE-book like figures • likesquares argument for triangles • central dark matter • Comment on triangles • Comment on AWFE • text boxes • use grob objects/printing properly • cope with missing data including missing zero intersection; • discuss Chow-Ruskey zero=nonsimple 1 Venn objects > if ("package:Vennerable" %in% search()) detach("package:Vennerable") > library(Vennerable) > Vcombo <- Venn(SetNames = c("Female", "Visible Minority", "CS Major"), + Weight = c(0, 4148, 409, 604, 543, 67, 183, 146)) > setList <- strsplit(month.name, split = "") > names(setList) <- month.name > VN3 <- VennFromSets(setList[1:3]) > V2 <- VN3[, c("January", "February"), ] > V4 <- VennFromSets(setList[1:4]) > V4f <- V4 > V4f@IndicatorWeight[, ".Weight"] <- 1 1

Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

Venn diagramsTechnical details and regression checks

Jonathan Swinton

23rd September, 2009

• Try CR for weight=0

• Plot faces for Chow-Ruskey

• General set membership

• implement not showing dark matter eg Fig 1

• AWFE-book like figures

• likesquares argument for triangles

• central dark matter

• Comment on triangles

• Comment on AWFE

• text boxes

• use grob objects/printing properly

• cope with missing data including missing zero intersection;

• discuss Chow-Ruskey zero=nonsimple

1 Venn objects> if ("package:Vennerable" %in% search()) detach("package:Vennerable")

> library(Vennerable)

> Vcombo <- Venn(SetNames = c("Female", "Visible Minority", "CS Major"),

+ Weight = c(0, 4148, 409, 604, 543, 67, 183, 146))

> setList <- strsplit(month.name, split = "")

> names(setList) <- month.name

> VN3 <- VennFromSets(setList[1:3])

> V2 <- VN3[, c("January", "February"), ]

> V4 <- VennFromSets(setList[1:4])

> V4f <- V4

> V4f@IndicatorWeight[, ".Weight"] <- 1

1

Page 2: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

> setList <- strsplit(month.name, split = "")

> names(setList) <- month.name

> VN3 <- VennFromSets(setList[1:3])

> V2 <- VN3[, c("January", "February"), ]

> V3.big <- Venn(SetNames = month.name[1:3], Weight = 2^(1:8))

> V2.big <- V3.big[, c(1:2)]

> Vempty <- VennFromSets(setList[c(4, 5, 7)])

> Vempty2 <- VennFromSets(setList[c(4, 5, 11)])

> Vempty3 <- VennFromSets(setList[c(4, 5, 6)])

2 The VennDrawing objectThis is created from a TissueDrawing object and a Venn object

> centre.xy <- c(0, 0)

> VDC1 <- newTissueFromCircle(centre.xy, radius = 2, Set = 1)

> VDC2 <- newTissueFromCircle(centre.xy + c(0, 1.5), radius = 1,

+ Set = 2)

> TM <- addSetToDrawing(drawing1 = VDC1, drawing2 = VDC2, set2Name = "Set2")

> VD2 <- new("VennDrawing", TM, V2)

−4 −2 0 2 4

−4

−2

0

2

4

c11

i23 i24c21

2

Page 3: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

3 Two circles

3.1 Two circles

−1.5 −1 −0.5 0 0.5 1

−0.5

0

0.5

d1 d2

yr1 r2

−0.5

0

0.5

d1 −− d2 d2

yr1 r2

Figure 1: Geometry of two overlapping circles

There is an intersection if |r1− r2| < d < r1 + r2. If so and d < max(r1,r2) the centreof the smaller circle is in the interior of the larger. Either way we have the relationships

d21 + y2 = r2

1

d22 + y2 = r2

2

If max(r1,r2) < d < r1 + r2 then d = d1 + d2; if |r1− r2| < d < max(r1,r2) then d =|d1−d2|.

We rely on the relationships

d1 = (d2− r22 + r2

1)/(2d)d2 = |d−d1|

y =1

2d

√4d2r2

1− (d2− r22 + r2

1)2

=√

r21−d2

1

3

Page 4: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

3.2 Weighted 2-set Venn diagrams for 2 Sets3.2.1 Circles

It is always possible to get an exactly area-weighted solution for two circles as shownin Figure 2.

00 11 10 01475.9979 271.9995 67.9992 135.9992

[1] "Area check passed"

JanuaryFebruary

13668 272

Figure 2: Weighted 2d Venn

3.3 2-set Euler diagrams3.3.1 Circles

00 11 10 017.1339724 3.8633868 0.1352894 3.1352961

4

Page 5: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

Unweighted Venn

02 4

i23

i24

Weighted Venn

02 4

i23

i24

Unweighted Euler

2 4 c11

Weighted Euler

2 4 c11

Figure 3: Effect of the Euler and doWeights flags.

5

Page 6: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

Unweighted Venn

32 0

i23

i24

Weighted Venn

32 0i23

i24

Unweighted Euler

32 c11e22

Weighted Euler

32 c11e22

Figure 4: As before for a different set of weights

6

Page 7: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

Unweighted Venn

30 4

i23

i24

Weighted Venn

30 4

i23

i24

Unweighted Euler

34i23

Weighted Euler

34i23

Figure 5: As before for a different set of weights

7

Page 8: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

4 Two squares

January February

32 4

8

Page 9: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

4.0.2 Weights

00 11 10 01476 272 68 136

JanuaryFebruary

13668 272

9

Page 10: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

4.0.3 Squares

Unweighted Venn

02 4

s1

i4 i5

i6s2

Weighted Venn

0

2

4

s1

i4

i5s2

Unweighted Euler

2

4

s1

i4

i5s2

Weighted Euler

2

4

s1

i4

i5s2

10

Page 11: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

Unweighted Venn

32 0

s1

i4 i5

i6s2

Weighted Venn

32 0

s1

i4

i5s2

Unweighted Euler

32

s1

i4

s2

Weighted Euler

32s1

i4

i5s2

11

Page 12: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

00 11 10 017.4 3.6 0.4 3.4

January

February3

0 4

s1

i4

i5

s2

12

Page 13: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

5 Three circles

> plot(Vcombo, doWeights = FALSE, show = list(Faces = TRUE))

Female

Visible MinorityCS Major

543 409183

4148

67 604

146

Figure 6: A three-circle Venn diagram

5.0.4 Weights

There is no general way of creating area-proportional 3-circle diagrams. The packagemakes an attempt to produce approximate ones.

13

Page 14: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

000 001 101 100 111 110 0116094.83358 537.83535 72.16413 4142.83542 140.83530 609.16384 188.16391

010403.83563

[1] "Area check passed"

Female

Visible MinorityCS Major

543409183

4148

67604

146

Figure 7: 3D Venn diagram. All of the areas are correct to within 10%

6 Three TrianglesThe triangular Venn diagram on 3-sets lends itself nicely to an area-proportional draw-ing under some contrainsts on the weights

14

Page 15: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

[1] "Area check passed"

JanuaryFebruary

March

001

010011

100

101

110

111

Figure 8: Triangular Venn with external universe

15

Page 16: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

6.1 Triangular Venn diagrams6.1.1 Triangles

000 100 010 111 110 00112 2 3 2 2 3

January

February

March

3

3

2

2

2

Figure 9: 3d Venn triangular with one empty intersection

16

Page 17: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

Unweighted Venn

6 30

4

1 00

to1

i4

i5

to2

i7

i8

i9

i10

to3

Weighted Venn

6 3

4

1

to1

i4i5

to2

i10

to3

Unweighted Euler

6 30

4

1 00

to1

i4

i5

to2

i7

i8

i9

i10

to3

Weighted Euler

6 3

4

1

to1

i4i5

to2

i10

to3

Figure 10: 3d Venn triangular with two empty intersection

17

Page 18: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

A

B

C

scc

saa

sbb

Given a triangle ABC of area ∆ and some nonnegative weights wa + wb + wc < 1we want to set sc, sa and sb so that the areas of each of the apical triangles are ∆-proportional to wa, wb and wc. This means

sc(1− sb)bcsinA = 2wa∆ (1)sa(1− sc)casinB = 2wb∆ (2)sb(1− sa)absinC = 2wc∆ (3)

So

sc(1− sb) = wa (4)sa(1− sc) = wb (5)sb(1− sa) = wc (6)

sb = 1−wa/sc (7)sa = wb/(1− sc) (8)

(sc−wa)(1− sc−wb) = sc(1− sc)wc (9)

s2c(1−wc)+ sc(wb +wc−wa−1)+wa(1−wb) = 0 (10)

Iff

4wawbwc < (1− (wa +wb +wc))2 (11)

this has two real solutions between wa and 1−wb.

18

Page 19: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

[1] TRUE

April

MayJuly

001 010011

100

101 110111

19

Page 20: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

6.2 Three triangles

JanuaryFebruary

March

001

010011

100

101

110

111

7 Three SquaresThis is a version of the algorithm suggested by Chow Ruskey 2003.

20

Page 21: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

[1] "Area check passed"

January

February

March

001

010 011

100

101

110

111

ca6

i8i9cb4

i11

i12 i13

i14

cc6

Figure 11: Weighted 3-set Venn diagram based on the algorithm of [1]

21

Page 22: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

7.1 Three squares

January

February

March

5

3 7

2

6

4

8

22

Page 23: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

8 Four squares

8.1 Unweighted 4-set Venn diagrams

Apil

Mch

Feb

Jn

uy a

r

p1

i4

p2

i7

i8i9

i13

i14

i15i16

i17

i18 p11

i20

23

Page 24: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

9 Chow-RuskeySee [2, 1].

9.1 Chow-Ruskey diagrams for 3 sets

[1] "Area check passed"

001

010

011

100101

110111

24

Page 25: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

[1] "Area check passed"

001

010

011

100

101

110

111

Figure 12: Chow-Ruskey CR3f

25

Page 26: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

[1] "Area check passed"

January

February

MarchApril

0001

0010

0011

0100

01010110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Figure 13: Chow-Ruskey weighted 4-set diagram, produces an error if we try to plotsignature face text

26

Page 27: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

[1] "Area check passed"

0111

1011

1111

r1

phir2 delta

r3

r[n]

delta

Figure 14: Chow-Ruskey weighted 4-set diagram

The area of the sector 0r1r2 is 12 r1r2 sinφ . The area of 0r1s2 is 1

2 (r1(r2 + δ )sinφ)and so the area of r1r2s2 is 1

2 (r1δ sinφ).The area of r2r2s2s3 is 1

2 [(r3 +δ )(r2 +δ )− r3r2)sinφ = 12 [(r3 + r2)δ +δ 2]sinφ .

The total area of the outer shape is

A =12(sinφ)

[(r1 + rn)δ +

n−2

∑k=2

[(rk+1 + rk)δ +δ2]

](12)

=12(sinφ)

[(r1 + rn)δ +(n−2)δ 2 +δ

n−2

∑k=2

[(rk+1 + rk)]

](13)

=12(sinφ)

[(r1 + r2 +2r3 + . . .+2rn−2 + rn−1 + rn)δ +(n−3)δ 2] (14)

so

0 = caδ2 + cbδ + cc (15)

ca = n−3 (16)cb = r1 + r2 +2r3 + . . .+2rn−2 + rn−1 + rn (17)

cc = −A/12

sinφ (18)

This is implemented in the compute.delta function.

27

Page 28: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

If all the rs are the same then cb = [2(n−3)+4]r = (2n−2)r.

[1] "Area check passed"

4

3

3

2

2

1

1

28

Page 29: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Figure 15: Chow-Ruskey 4

10 Euler diagrams

29

Page 30: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

10.1 3-set Euler diagrams10.1.1 Other examples of circles

January

FebruaryMarch

32

8128

464

16

256

Figure 16: TODO Big weighted 3d Venn fails

30

Page 31: Venn diagrams Technical details and regression checks · 3.2 Weighted 2-set Venn diagrams for 2 Sets 3.2.1 Circles It is always possible to get an exactly area-weighted solution for

11 Error checkingThese should fail

> print(try(Venn(numberOfSets = 3, Weight = 1:7)))

[1] "Error in Venn(numberOfSets = 3, Weight = 1:7) : \n Weight length does not match number of intersections\n"attr(,"class")[1] "try-error"

> print(try(V3[1, ]))

[1] "Error in V3[1, ] : Can't subset on rows\n"attr(,"class")[1] "try-error"

Empty objects work

> V0 = Venn()

> (Weights(V0))

named numeric(0)

> VennSetNames(V0)

character(0)

12 This documentAuthor Jonathan SwintonSVN id of this document Id: VennDrawingTest.Rnw 57 2009-09-18 17:14:09Z js229 .Generated on 23rd September, 2009R version R version 2.9.0 (2009-04-17)

References[1] Stirling Chow and Frank Ruskey. Drawing area-proportional Venn and Euler dia-

grams. In Giuseppe Liotta, editor, Graph Drawing, volume 2912 of Lecture Notesin Computer Science, pages 466–477. Springer, 2003.

[2] Stirling Chow and Frank Ruskey. Towards a general solution to drawing area-proportional Euler diagrams. Electronic Notes in Theoretical Computer Science,134:3–18, 2005.

31