{smcl}
{* *! Version 1.6 22May2022 of help file for 1.6 of pvenn2.ado by Mead Over}{...}
{* *! Based on pvenn.sthlp by Wenfeng Gong & Jan Osterman 23 Nov 2011 }{...}
{vieweralsosee "[G-2] graph twoway function" "mansection G-2 graphtwowayfunction"}{...}
{vieweralsosee "" "--"}{...}
{vieweralsosee "[SSC] pvenn by W. Gong & J. Osterman:" ""}{...}
{vieweralsosee " pvenn article" "browse http://econpapers.repec.org/software/bocbocode/s457368.htm"}{...}
{vieweralsosee " pvenn program" "net describe pvenn, from(http://fmwww.bc.edu/repec/bocode/p)"}{...}
{vieweralsosee "[STB] venndiag by Jens Lauritsen:" ""}{...}
{vieweralsosee " venndiag article" "browse http://fmwww.bc.edu/ec-p/software/stata/venndiag.pdf"}{...}
{vieweralsosee " venndiag program" "search gr34_3"}{...}
{vieweralsosee "[SJ] ellip by Anders Alexandersson" "search ellip"}{...}
{vieweralsosee "eulerAPE" "browse http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0101717"}{...}
{viewerjumpto "Syntax" "pvenn2##syntax"}{...}
{viewerjumpto "Description" "pvenn2##description"}{...}
{viewerjumpto "Options, Manual mode" "pvenn2##manual_mode_opts"}{...}
{viewerjumpto "Options" "pvenn2##options"}{...}
{viewerjumpto "Examples" "pvenn2##examples"}{...}
{viewerjumpto "References" "pvenn2##references"}{...}
{viewerjumpto "Authors" "pvenn2##author"}{...}
{hline}
{right:Version 1.6, 22May2022. Available from: {net "from http://digital.cgdev.org/doc/stata":CGD's Stata Programs}}
{hline}
{title:Title}
{p2colset 5 22 26 2}{...}
{p2col :{cmd:pvenn2} {hline 2}}Proportional Venn diagrams. Enhanced version of {search pvenn}{p_end}
{p2colreset}{...}
{marker syntax}{...}
{title:Syntax}
{p 8 17 2}
{cmdab:pvenn2} [{it:var1 }[{it:... var3}]] [if]
[{cmd:,} [{it:{help pvenn##manual_mode_opts:manual_mode_opts}}] {it:{help pvenn##options:options}}]
{synoptset 30 tabbed}{...}
{synopthdr :manual_mode_opts}
{synoptline}
{syntab:Main}
{synopt:{opt plabel}(lblname [lblname ...])} specifies a list of label names for the populations or subsets.{p_end}
{synopt:{opt pA}(#)} specifies the size of population A.{p_end}
{synopt:{opt pB}(#)} specifies the size of population B.{p_end}
{synopt:{opt pC}(#)} specifies the size of population C.{p_end}
{synopt:{opt pAB}(#)} specifies the size of overlap between population A & B.{p_end}
{synopt:{opt pAC}(#)} specifies the size of overlap between population A & C.{p_end}
{synopt:{opt pBC}(#)} specifies the size of overlap between population B & C.{p_end}
{synopt:{opt ptotal}(#)} specifies the size of total population.{p_end}
{synoptline}
{synopthdr}
{synoptline}
{syntab:Main}
{synopt:{opt ang}(#)}specifies the angle between the connecting lines of circle A/B center and the X axis, that is the relative location of circle B to circle A; default is 0.{p_end}
{synopt:{opt pos}(#)}specifies the relative location of circle C to circle A & B; default is 1.{p_end}
{synopt:{opt drawt:otal}(#)}draw a rectangle outside all circles to represent the total population size; default is 1.{p_end}
{synopt:{opt drawl:abel}(#)}draw labels in circles indicating names of the populations; default is 1.{p_end}
{synopt:{opt lc}({help colorstyle}list)}specifies a line color for each circle and rectangle; default colors are determined by the selected graphics {help scheme}.{p_end}
{synopt:{opt lp}({help linepatternstyle}list)}specifies a line pattern for each circle and rectangle; default is "solid solid solid solid".{p_end}
{synopt:{opt lw}({help linewidthstyle}list)}specifies a line widths for each circle and rectangle; default is "0.8 0.8 0.8 0.8".{p_end}
{synopt:{opt n}(#)}specify the points (#*2) used to draw a circle; default is 2,000.{p_end}
{synopt:{help twoway_options}}specify additional twoway options (but not all of them are allowed).
Some that are allowed are listed below and further described {help pvenn2##meadopts:here}.{p_end}
{synopt:{opt text(#y #x "text)}}specify contents and location of {help added_text_options:added text}{p_end}
{synopt:{opt legend(passthru)}}specify {help legend options}{p_end}
{synopt:{opt note(passthru)}}append a {help title_options:note} underneath the graph{p_end}
{synopt:{opt title(passthru)}}display a {help title_options:title} at the top of the graph{p_end}
{synopt:{opt subtitle(passthru)}}display a {help title_options:subtitle} at the top of the graph{p_end}
{synopt:{opt nolabel}}Omit variable names, which otherwise appear as labels at the center of each circle{p_end}
{synopt:{opt name(passthru)}}{help name_option:name the memory graph} for recall e.g. with the {help graph_combine:graph combine} command{p_end}
{synopt:{opt saving(passthru)}}{help saving_option:save the graph} to disk.{p_end}
{synopt:{opth scheme(schemes)}}Select a graph {help scheme} which will affect the default colors and appearance of the Venn diagram.{p_end}
{synopt:{opt *}}All additional otherwise unspecified options are passed through to Stata's {help graph_twoway_function:function} graphing command{p_end}
{synoptline}
{p2colreset}{...}
{marker description}{...}
{title:Description}
{pstd}
{cmd:pvenn2} produces proportioned and positioned Venn diagrams,
supporting 2-circle and 3-circle Venn diagrams, as well as a 1-circle diagram. {cmd:pvenn2} can also draw a rectangle
outside all circles to proportionally represent the total population size, when it is possible.
Proportional Venn diagrams attempts to make each of the zones (the circles, the area between the circles and the outside rectangle,
and the set intersections) proportional
to the population (value) assigned to the zone. Note that, the overlap regions
of 3-circle Venn diagrams are not always to scale, because an
ideal solution is generally not possible using circles. See {help pvenn2##references:Micallef & Rodgers (2014)}
for a less-constrained approach using ellipses that nevertheless can fail to reproduce proportionately
sized representations of the sizes of set intersections for some data.
Also see {help pvenn2##references:Lauritsen}'s 1998 Stata program {help venndiag}, updated in 2009, that makes a proportionate Venn diagram
composed of circles, rectangles or ellipses, but uses Stata's original {help gr7} graph tools.
{pstd}
The core code for {cmd:pvenn2} and for most of this help file was published in October, 2011 on SSC by Wenfeng Gong & Jan Osterman
of the Duke Center for Health Policy as the program {stata ssc describe pvenn:pvenn}.
The enhancements in {cmd:pvenn2} (relative to the November, 2011 version 1.0 of {cmd:pvenn})
consist of (a) the calculation and display of the size of the intersection among all three sets, pABC;
(b) increased control over the text and labels;
(c) the default addition of an informative {help legend} which can be suppressed by {opt legend(off)};
(d) control over the graph's appearance using the option {opth scheme(schemes)};
(e) options to save and name the created graph
and (f) implementation of -{help if}- to restrict analysis to a subset of the data in memory.
This help file is also enhanced with typo corrections, additional references, corrected examples
and the addition of the "Also See" and "Jump To" dialogs above.
{pstd}
As is the case for {help pvenn}, there are two ways to use {cmd:pvenn2}:
{pstd}
{cmd:1. Generating Venn diagrams from data:} {cmd:pvenn2} can draw Venn diagrams from one, two, or three variables.
The variables must only have values of 0 and 1, where 1 means a positive observation (the observation is a member of the associated set)
and 0 means a negative observation (the observation is not a member of that set).
With one variable specified, a 1-circle diagram is drawn with an area representing the size of the associated set of positive observations.
If drawtotal(1) is also specified, {cmd:pvenn2} encloses the circle in a rectangle, with the area between the circle and
the rectangle being proportional to the number of observations which are in the total population but not in the set.
With two or three variables specified, 2-circle or 3-circle proportional Venn diagrams can be created.
The following example data set has 3 variables and 9 observations. {cmd:pvenn2} produces the Venn diagram directly from the data.
{com}
clear
input popA popB popC{txt}
1 0 0
1 1 0
0 1 1
0 0 1
1 0 1
1 1 1
0 0 0
0 0 0
0 0 0
end
{com}
list popA popB popC
{txt}
{c TLC}{hline 6}{c -}{hline 6}{c -}{hline 6}{c TRC}
{c |} {res}popA popB popC {txt}{c |}
{c LT}{hline 6}{c -}{hline 6}{c -}{hline 6}{c RT}
1. {c |} {res} 1 0 0 {txt}{c |}
2. {c |} {res} 1 1 0 {txt}{c |}
3. {c |} {res} 0 1 1 {txt}{c |}
4. {c |} {res} 0 0 1 {txt}{c |}
5. {c |} {res} 1 0 1 {txt}{c |}
{c LT}{hline 6}{c -}{hline 6}{c -}{hline 6}{c RT}
6. {c |} {res} 1 1 1 {txt}{c |}
7. {c |} {res} 0 0 0 {txt}{c |}
8. {c |} {res} 0 0 0 {txt}{c |}
9. {c |} {res} 0 0 0 {txt}{c |}
{c BLC}{hline 6}{c -}{hline 6}{c -}{hline 6}{c BRC}
{com}
. pvenn2 popA popB popC
{dup 10: } {txt}popA {c |} Freq. Percent Cum.
{dup 10: }{hline 12}{c +}{hline 35}
{dup 10: } 0 {c |}{res} 5 55.56 55.56
{dup 10: }{txt} 1 {c |}{res} 4 44.44 100.00
{dup 10: }{txt}{hline 12}{c +}{hline 35}
{dup 10: } Total {c |}{res} 9 100.00
{dup 10: }
{dup 10: } {txt}{c |} popB
{dup 10: } popA {c |} 0 1 {c |} Total
{dup 10: }{hline 11}{c +}{hline 22}{c +}{hline 10}
{dup 10: } 0 {c |}{res} 4 1 {txt}{c |}{res} 5
{dup 10: }{txt} 1 {c |}{res} 2 2 {txt}{c |}{res} 4
{dup 10: }{txt}{hline 11}{c +}{hline 22}{c +}{hline 10}
{dup 10: } Total {c |}{res} 6 3 {txt}{c |}{res} 9
{dup 10: }
{dup 10: } {txt}{c |} popC
{dup 10: } popA {c |} 0 1 {c |} Total
{dup 10: }{hline 11}{c +}{hline 22}{c +}{hline 10}
{dup 10: } 0 {c |}{res} 3 2 {txt}{c |}{res} 5
{dup 10: }{txt} 1 {c |}{res} 2 2 {txt}{c |}{res} 4
{dup 10: }{txt}{hline 11}{c +}{hline 22}{c +}{hline 10}
{dup 10: } Total {c |}{res} 5 4 {txt}{c |}{res} 9
{dup 10: }
{dup 10: } {txt}{c |} popC
{dup 10: } popB {c |} 0 1 {c |} Total
{dup 10: }{hline 11}{c +}{hline 22}{c +}{hline 10}
{dup 10: } 0 {c |}{res} 4 2 {txt}{c |}{res} 6
{dup 10: }{txt} 1 {c |}{res} 1 2 {txt}{c |}{res} 3
{dup 10: }{txt}{hline 11}{c +}{hline 22}{c +}{hline 10}
{dup 10: } Total {c |}{res} 5 4 {txt}{c |}{res} 9
{txt}Sizes of subsets:
Set A: {res}Population_A{txt} as identified by the variable {res}popA{txt}: {res}4
{txt}Set B: {res}Population_B{txt} as identified by the variable {res}popB{txt}: {res}3
{txt}Set C: {res}Population_C{txt} as identified by the variable {res}popC{txt}: {res}4
{txt}AB Overlap: {res}2
{txt}AC Overlap: {res}2
{txt}BC Overlap: {res}2
{txt}ABC Overlap: {res}1
{txt}Total population: {res}9
{txt}Draw total population rectangle (0,not; 1, yes): {res}1
{txt}Rotation angle of circle B: {res}0
{txt}Relative position of circle C (1,clockwise; -1,counterclockwise): {res}1{reset}
{pstd}
The above example illustrates a limitation of using circles to construct a proportional Venn diagram.
In the above data the intersection between any two of the three sets contains two observations,
while the intersection of all three sets contains a single observation.
In the Venn diagram constructed by this program, the areas of all three intersections of two sets look approximately equal and might plausibly
each represent two observations. But the area of the intersection of all three sets
represent only one observation, and thus should be half the size of the area of any of the two-set intersections.
Inspection of the graph reveals that the area of intersection of all three sets is larger than half the area of any
of the two-set intersections, and thus too large. For an arbitrary data set, proportional representation of the areas
of all intersections is not possible using circles. But for most data sets,
the proportional representation using circles works pretty well. {ul:Caveat emptor}.{sf}
See the {help pvenn2#references:references} for further discussion.
{pstd}
{cmd:2. Generating Venn diagrams from manual inputs:} When no variable is specified, {cmd:pvenn2} can draw Venn diagrams using {it:manual_mode_opts}.
In the above example,
{pstd}
. pvenn2 popA popB popC {p_end}
{phang}
is equivalent to {p_end}
{phang}
. {stata pvenn2, plabel(popA popB popC) pA(4) pB(3) pC(4) pAB(2) pAC(2) pBC(2) pABC(1) ptotal(9)} {p_end}
{marker manual_mode_opts}{...}
{title:Options Generating Venn diagrams from manual inputs}
{dlgtab:Main}
{phang}
The {it:manual_mode_opts} options are functional only when no variable is specified.
{phang}
{opt plabel}(lblname [lblname ...]) specifies a list of label names for the populations.
To fit into the Venn diagram and its legend, the label names should be short.
If possible, avoid spaces or other punctuation in the names.
If a space is desired in the label, use an underscore character ("_"),
because by default all underscore characters in these label names
are replaced with a space in the display.
If option plabel() is omitted, the default names for up to three populations
are "Population_A", "Population_B" and "Population_C".
{phang}
{opt pA}(#) specifies the size of population A; default is 0. If pA(0), circle A is not drawn.
{phang}
{opt pB}(#) specifies the size of population B; default is 0. If pB(0), circle B is not drawn.
{phang}
{opt pC}(#) specifies the size of population C; default is 0. If pC(0), circle C is not drawn.
{phang}
{opt pAB}(#) specifies the size of overlap between population A & B; default is 0.
{phang}
{opt pAC}(#) specifies the size of overlap between population A & C; default is 0.
{phang}
{opt pBC}(#) specifies the size of overlap between population B & C; default is 0.
{phang}
{opt pABC}(#) specifies the size of overlap of populations A, B & C; default is 0.
{phang}
{opt ptotal}(#) specifies the size of total population; default is 0. If {opt ptotal(0)} is specified, outside rectangle is not drawn.
{marker options}{...}
{title:Options}
{dlgtab:Main}
{phang}
{opt ang}(#) specifies the angle between the connecting lines of circle A/B center and the X axis, that is the relative location of circle B to circle A; default is 0.
{phang}
{opt pos}(#) specifies the relative location of circle C to circle A & B; default is 1.
{opt pos(1)} circle C is drawn clockwise to the circle A & B; {opt pos(-1)} circle C is drawn counterclockwise to the circle A & B.
{phang}
{opt lc}({help colorstyle}list) specifies a line color for each circle and rectangle;
default colors for the circles are the first three colors in the user's active graph {help scheme}.
The default color for the rectangle is the color the active {help scheme} assigns to axes, which is typically black.
The sequence is circleA, circleB, circleC, and outside rectangle. Use . to skip an item in the list.
The color scheme used in {help pvenn} can be reproduced by specifying the option
{opt lc(cranberry emerald brown lavender)}.
{phang}
{opt lp}({help linepatternstyle}list) specifies a line pattern for each circle and rectangle; default is "solid solid solid solid".
The sequence is circleA, circleB, circleC, and outside rectangle. Use . to skip an item in the list.
{phang}
{opt lw}({help linewidthstyle}list) specifies a line widths for each circle and rectangle; default is "0.8 0.8 0.8 0.8".
The sequence is circleA, circleB, circleC, and outside rectangle. Use . to skip an item in the list.
{phang}
{opt drawtotal(1)} draw a rectangle outside all circles to represent the total population size; default is 1. {opt drawtotal(0)} suppresses the rectangle.
{phang}
{opt drawlabel(1)} draw labels in circles indicating names of the populations; default is 1. {opt drawlabel(0)} suppresses the display of labels.
{phang}
{opt n}(#) specify the points (#*2) used to draw a circle; default is 2,000,
but sometimes leaves a small gap at clock position 3 of a circle. This gap can be closed
by increasing the number of points to 20,000 which is the default in {help pvenn}
or to an even larger value. Large values of {opt n(#)} slow the production of the plot.
Refer to help {help twoway_function}.
{phang}
{opt {help twoway_options}} specifies additional twoway options (not all of which are allowed). Useful allowed options
include {help title_options} plus additional options listed {help pvenn2##meadopts:below}.
{marker meadopts}
{dlgtab:Added by Mead Over}
{synoptset 20 tabbed}{...}
{synopt:{opt text(string)}}specify contents and location of {help added_text_options:added text.
To specify the coordinates at which the test is centered, point (0,0) is center of rectangle,
(1,1) is northeast corner and (-1,-1) is southwest corner.{p_end}
{synopt:{opt legend(passthru)}}use {help legend options} to replace the default legend. To suppress {cmd:pvenn2}'s default legend, specify {opt legend(off)}.{p_end}
{synopt:{opt note(passthru)}}append a note underneath the graph{p_end}
{synopt:{opt title(passthru)}}display a {help title_options:title} at the top of the graph{p_end}
{synopt:{opt subtitle(passthru)}}display a {help title_options:subtitle} at the top of the graph{p_end}
{synopt:{opt nolabel}}Do not label the circles with the variable names{p_end}
{synopt:{opt name(passthru)}}{help name_option:name the memory graph} for recall e.g. with the {help graph_combine:graph combine} command{p_end}
{synopt:{opt saving(passthru)}}{help saving_option:save the graph} to disk.{p_end}
{synopt:{opth plotregion(region_options)}}By specifying {help region_options}, the user can, for example, override the default {opth margin(marginstyle)},
which is {opt vlarge} with {opt drawtotal(0)} or {opt medlarge} with {opt drawtotal(1)}.
This is useful when parts of the graph or its labels extend beyond the borders of the page.{p_end}
{synopt:{opth scheme(schemes)}}Select a graph {help scheme} which will affect the default colors and appearance of the Venn diagram.
To list the schemes installed on your computer type {stata graph query, schemes} at the Stata dot prompt.
Additional user-contributed schemes are available online. See for example {search s2clr_on_white}, which can be installed
{stata "view net describe scheme_s2clr_on_white, from(http://digital.cgdev.org/doc/stata/MO/Misc)":here}.{p_end}
{marker examples}{...}
{title:Examples}
{pstd}
{cmd:1. Generating Venn diagrams from data:}
{pstd}
The examples below highlight the use of the {hi: pvenn} plot on the nlsw88 dataset, which is pre-installed with Stata software.
{pstd}
Click below to load dataset
{phang}
{stata sysuse nlsw88}
{pstd}
Click below (after the dataset is loaded) to see the intersections among "never married" "college graduate" and "lives in south".
{phang}
{stata pvenn2 never_married collgrad south} {p_end}
{phang}
{stata pvenn2 never_married collgrad south, ang(30) drawtotal(0) pos(-1)} {p_end}
{pstd}
The options {opt lc:olor}, {opt lw:idth}, {opt lc:olor} and {opt lp:attern} can enhance the appearance of the the displayed circles and rectangle.
{phang}
{stata pvenn2 never_married collgrad south, drawtotal(1) lc("black" "red") lw(0.1 0.3 0.5 0.8) lp("_" "." "dash_dot" "-")} {p_end}
{pstd}
Click below to see how the circle labels can be suppressed using the option {opt nolabel}
and instead use a legend and user-specified text to annotate the plot.
Note that the keys in the legend must be 1, 3 and 5 rather than 1, 2, 3.
(This is because {cmd:pvenn2} draws two half-circles for each of the depicted sets.){p_end}
{phang}
{stata pvenn2 never_married collgrad south, ang(30) drawtotal(1) legend(order(1 "Never married" 3 "College graduate" 5 "South") col(1) pos(3)) nolabel text(0 .6 "27") note("27 individuals are in the intersection of the three sets")} {p_end}
{pstd}
Click below to see the intersections among "married" "lives in south" and "lives in central city".
{phang}
{stata pvenn2 married south c_city} {p_end}
{pstd}
In this case, total population cannot be represented as an outside rectangle,
because the smallest rectangle containing the circles has too much area
in proportion to the areas in the circles. This phenomenom is inherent
in the attempt to construct a proportionate Venn diagram using only circles
embedded in a rectangle.{p_end}
{pstd}
{cmd:2. Generating Venn diagrams from manual inputs:}
{phang}
1-circle diagram: {p_end}
{phang}
{stata pvenn2, pA(10) pB(0) pC(0) pAB(0) pAC(0) pBC(0) ang(30) ptotal(30) drawtotal(1) pos(-1) plabel("Max" "Jan" "Winston")} {p_end}
{phang}
2-circle Venn diagram: {p_end}
{phang}
{stata pvenn2, pA(10) pB(0) pC(30) pAB(0) pAC(3) pBC(0) ptotal(100) ang(30) drawtotal(1) pos(-1) plabel("Max" "Jan" "Winston")} {p_end}
{phang}
{stata pvenn2, pA(10) pB(30) pC(0) pAB(0) pAC(0) pBC(3) ptotal(100) ang(30) drawtotal(1) pos(-1) plabel("Max" "Jan" "Winston")} {p_end}
{phang}
3-circle Venn diagram: {p_end}
{phang}
{stata pvenn2, pA(10) pB(30) pC(20) pAB(4) pAC(5) pBC(3) pABC(1) ang(30) ptotal(90) drawtotal(0) pos(1) plabel("Max" "Jan" "Winston") title(Example)} {p_end}
{phang}
{stata pvenn2, pA(45) pB(25) pC(50) pAB(18) pAC(5) pBC(3) pABC(1) ptotal(150) ang(120) drawtotal(1) pos(-1) plabel("Max" "Jan" "Winston") title(Example)} {p_end}
{phang}
{stata pvenn2, pA(10) pB(30) pC(20) pAB(0) pAC(0) pBC(3) ang(30) drawtotal(1) pos(-1) plabel("Max" "Jan" "Winston") title(Example)} {p_end}
{marker references}{...}
{title:References}
{phang}
Alexandersson, A. 1998. gr32: Confidence
ellipses. {it:Stata Technical Bulletin} 46: 10-13. In
{it:Stata Technical Bulletin Reprints}, vol. 8, 54-57. College Station, TX:
Stata Press.
{phang}
------. 2004. Graphing confidence ellipses: An update of
ellip for Stata 8. {it:Stata Journal} 4(3): 242-256.
{phang}
McCartin, B. 2003. A Geometric Characterization of Linear
Regression. {it:Statistics: A Journal of Theoretical and Applied Statistics}
37(2): 101-117.
{phang}
Micallef L, Rodgers P (2014) {it:eulerAPE: Drawing Area-Proportional 3-Venn Diagrams Using Ellipses}. {cmd:PLoS ONE} 9(7): e101717. https://doi.org/10.1371/journal.pone.0101717{p_end}
{phang}
Lauritsen, Jens M. (1998) "VENNDIAG: Stata module to generate Venn diagrams," Statistical Software Components S361502, Boston College Department of Economics, revised 01 Apr 2009.
Available {stata ssc describe venndiag:here}. A PDF of his original 1998 article in Stata's STB is available
{browse "http://fmwww.bc.edu/ec-p/software/stata/venndiag.pdf":here}.
{phang}
Euler diagram. 12 January 2022, 17:40 UTC. In Wikipedia: The Free Encyclopedia. Wikimedia Foundation Inc. Encyclopedia on-line. Available from https://en.wikipedia.org/wiki/Euler_diagram. Internet. Retrieved 1 February 2022.
{marker author}{...}
{title:Authors}
{pstd}
Version 1.0 of the original program {search pvenn} and its help file can be downloaded
{stata ssc describe pvenn:here}. They were written in 2011 by:{p_end}
{phang}
Wenfeng (Winston) Gong & Jan Osterman;
Center for Health Policy and Inequity Research at Duke University, Durham, NC.
Email {browse "mailto:gongwenf@gmail.com":gongwenf@gmail.com}
{phang}{browse "http://www.cgdev.org/expert/mead-over/":Mead Over} has added additional
functionality from May, 2015 to the present. Contact him at:
Email: {browse "mailto:mover@cgdev.org":MOver@CGDev.Org} or the original authors
with any problems or suggestions. {p_end}
{* Based on pvenn.sthlp 23 Nov 2011 by Wenfeng Gong & Jan Osterman}{...}
{* Version 1.1 9/9/2015 by Mead Over CGD to accommodate new options he added}{...}
{* Version 1.2 27/2/2018 to correct typo, replacing "addtext" with "text"}{...}
{* Version 1.3 14/12/2020 Addressing bug in the first example in help file which gives error "option range() requires two numbers"}{...}
{* Version 1.4 23Feb2021 Fixed the example in this help file, but the crash can still occur.}{...}
{* All the examples in the help file now work.}{...}
{* Version 1.5 30May2021 Updated to reflect this month's enhancements to -pvenn2.ado-.}{...}
{* Version 1.6 22May2022 Include [if] in the syntax diagram. Add discussion of limitations after first example. Add Wikipedia reference.}{...}