help tabplot (SJ20-3:gr0066_2)

Title

tabplot -- One-, two-, and three-way bar charts for tables

Syntax

tabplot
varname
[if] [in]
[weight]
[, options]

tabplot
rowvar
colvar
[if] [in]
[weight]
[, options]

fweights, aweights, and iweights may be specified;
see weight.

options specify

- whether bars show fractions, percents, or missing categories

[ fraction | fraction(varlist) | percent | percent(varlist)
]

missing

- whether y and x values are literal (default: map to integers 1 up)

yasis xasis

- whether y and x values are reversed (default: not)

yreverse xreverse

- horizontal bars (default vertical)

horizontal

- maximum bar height (lengths if horizontal) (default 0.8)

height(#)

- showing numeric values below or beside bars

showval[(specification)]

- that bars are to be framed

frame(#) frameopts(frame_options)

- more specialized variants

minimum(#)
maximum(#)
separate(sepspec)

- different displays for individual bars

bar1(rbar_options)
...
bar20(rbar_options)
barall(rbar_options)

- other graph details

graph_options
[ plot(plot) |
addplot(plot) ]

Description

tabplot plots a table of numerical values
(for example, frequencies, fractions, or percents) in graphical form as a bar
chart. It is mainly intended for representing contingency tables for one,
two, or three categorical variables. It also has uses for producing multiple
histograms and graphs for general one-, two-, or three-way tables.

tabplot varname creates a bar chart that by default
displays one set of vertical bars; with the horizontal option, it
displays one set of horizontal bars. The categories of varname thus
define either columns from left (low values) to right (high values) or rows
from top (low values) to bottom (high values). The value (for example,
frequency, fraction, or percent) for each column or row is shown as a bar.

tabplot rowvar colvar follows standard
tabular alignment: the categories of rowvar define rows from top
(low values) to bottom (high values), and the categories of colvar
define columns from left (low values) to right (high values). The value
(for example, frequency, fraction, or percent) for each combination of row and
column is shown as a bar, with default alignment vertical.

The default bar width is 0.5. Use the barwidth() option
to vary width, but note that all bars will have the same width.

By default, both variables are mapped on the fly in sort order
to successive integers from 1 and up, but original values or value labels
are used as value labels: this may be varied by use of the yasis,
xasis, yreverse, and xreverse options.
The maximum bar height is by default 0.8.
Use the height() option to vary this.

See Remarks and Examples for advice on plotting two or more
variables on the rows or the columns of such a plot.

Options

fraction indicates that all frequencies should be shown
as fractions (with sum 1) of the total frequency of all values being
represented in the graph.

fraction(varlist) indicates that all
frequencies should be shown as fractions (with sum 1) of the total
frequency for each distinct category defined by the combinations of
varlist. Usually, varlist will be one or more of the variables
specified.

percent indicates that all frequencies should be shown as
percents (with sum 100) of the total frequency of all values being
represented in the graph.

percent(varlist) indicates that all
frequencies should be shown as percents (with sum 100) of the total
frequency for each distinct category defined by the combinations of
varlist. Usually, varlist will be one or more of the variables
specified.

Only one of the fraction[()] and
percent[()] options may be specified.

missing specifies that any missing values of any of the
variables specified should also be included within their own categories.

yasis and xasis specify, respectively, that the
y (row) variable and the x (column) variable are to be treated
literally (that is, numerically). Most commonly, each option will be
specified if the variable in question is a measured scale or a graded
variable with gaps. If values 1 to 5 are labeled A to E, but no value
of 4 (D) is present in the data, yasis or xasis prevents a
mapping to 1 (A) ... 4 (E).

yreverse and xreverse specify, respectively, that
the y (row) variable and the x (column) variable are to be reversed from
the version presented. For example, if a variable to be plotted takes
values 1 to 5, then reversing the scale will flip so 5 will be plotted
where 1 was and vice versa.

xasis may not be specified with xreverse.

yasis may not be specified with yreverse.

horizontal specifies horizontal bars. The default is
vertical bars.

height(#) controls the amount of graph space
taken up by bars. The default is 0.8. Note that the height may need to
be much smaller or much larger with yasis or xasis, given
that the latter take values literally.

showval specifies that numeric values be shown
beneath (or if horizontal is specified, to the left of) bars.

showval may also be specified with a variable name
and options. If options alone are specified, no comma is necessary. In
particular,

showval(varname) specifies that the values
to be shown are those of varname. For example, the values of some
kind of residuals might be shown alongside frequency bars.

showval(offset(#)) specifies an offset between
the base (or left-hand edge) of the bar and the position of the numeric
value. Default is 0.1 with two variables or 0.02 with one variable.
Tweak this if the spacing is too large or too small.

showval(format(format)) specifies a format
with which to show values. Specifying a format will often be advisable
with nonintegers; for example, showval(format(%2.1f)) specifies
rounding to 1 decimal place. Note that with a specified variable, the
format defaults to the format of that variable; with percent options, the
format defaults to %2.1f (1 decimal place); with fraction options, the
format defaults to %4.3f (3 decimal places).

showval(varname, format(%2.1f)) is an example
of varname specified with options. As usual, a comma is needed
in such cases.

Otherwise, the options of showval() can be options of
scatter, most usually marker label options.

frame(#) specifies that all bars should be framed with bars showing
constant value #. Most commonly, # is the maximum possible value (say
fraction 1 or percent 100) or some other reference value. By default, framing bars have
no fill color. See (e.g.) Cleveland and McGill (1984) or Cleveland (1985; examples on pp.209, 222, 287)
or Cleveland (1994; example on p.241) or Munzer (2015)
for the idea of framed rectangles and (e.g.) Wilkinson (1999, 2005),
Wild and Seber (2000) or
Keen (2010, 2018) for the term thermometer glyphs, plots or charts.
Wexler (2021, pp.186, 188-189, 191) gives further examples.

frameopts(frame_options) specifies options of twoway rbar
to tune representation of the framing bars.

minimum(#) suppresses plotting of bars with values less
than the minimum specified, in effect setting them to zero.

maximum(#) truncates bars with values more than the
maximum specified to show that maximum.

separate(sepspec) specifies that bars associated with different
sepspec will be shown differently, most obviously using different
colors. sepspec is passed as an argument to the by() option
of separate, except that references to @ are first
translated to be references to the quantity being plotted.

A call to separate() may be supplemented with calls to
options bar1() ... bar20() or to barall(). The
arguments should be options of twoway rbar.

Options bar1() to bar20() are provided to allow
overriding the defaults on up to 20 categories, the first, second, etc.,
shown. The limit of 20 is arbitrary and more than any user
should really want. Option barall() is available to override
the defaults for all bars. Any bar#() option always
overrides barall(). Thus if you wanted thicker blwidth() on all
bars, you could specify barall(blwidth(thick)). If you wanted to
highlight the first category only, you could specify
bar1(blwidth(thick)).

graph_options refers to options of
twoway rbar. Among others:

barwidth(#) specifies the widths of the bars. The default
is barwidth(0.5). This may need changing, especially with the
xasis or yasis option or if you wish bars to touch, exactly or
nearly.

bfcolor(colorstyle) adjusts the bar fill color. In particular,
Stata's defaults often imply that bars are filled with strong colors, but
unfilled bars created by using bfcolor(none) may be more subtle and just
as clear.

by(varlist) specifies another variable used to subdivide the
display into panels.

recast(newplottype) recasts the graph as another twoway
plottype. In practice, recast(rspike) is the main alternative.

subtitle(tinfo), shown by default outside the graph and at top
left, specifies what kind of quantity is being shown: "frequency",
"percent", and so forth. The Examples section below includes
examples in which it is changed, which may mean being blanked out.

plot(plots) provides a way to add
other plots to the generated graph. Allowed in Stata 8.

addplot(plots) provides a
way to add other plots to the generated graph. Allowed in Stata 9 and later.

With large datasets especially, one should ensure that
the plot or the extra plots do not contain information repeated for every
observation within each combination of rowvar and colvar. The
examples show one technique for avoiding this.

Remarks

The display is deliberately minimal. No numeric scales are
shown for reading off numeric values, although optionally numeric values
may be shown below or beside bars using the showval option.
Above all, there is no facility for any kind of three-dimensional
display or effect. The maximum value (or more generally, value furthest
from zero) shown is indicated with note(), unless showval or
showval() is specified.

In contrast to a table, in which it is easier to compare values
down columns, it is usually easier to compare values across rows
whenever bars are vertical. A simple alternative is to use the
horizontal option, in which case it is usually easier to compare
down columns. Some experimentation with both forms and with
percent(rowvar) or percent(colvar)
will often be helpful.

tabplot rowvar colvar, by() is the way to plot
three-way tables. The variable specified in by() is used to
produce a set of graphs in several panels. Similarly, tabplot
varname, by() is another way to plot two-way tables.

Four-way or higher charts would often not be readable or
interpretable, but there are three evident ways to attempt them. First,
try to reshape or otherwise restructure the data
concerned to fewer variables. Second, combine
variables, usually predictor variables, into a composite variable to be
shown on one axis. See Cox (2007) for discussion of how to do that.
Third, use tabplot repeatedly and then use graph combine.

tabplot with the xasis option may be useful for
stacking histograms vertically. Less commonly, with the yasis and
horizontal options, it may be useful for stacking them
horizontally. A typical protocol would be, for mpg shown in bins
of width 2.5 mpg,

. sysuse auto, clear

. gen midpoint = round(mpg, 2.5)

. _crcslbl midpoint mpg

. tabplot foreign midpoint, xasis barw(2.5) bstyle(histogram) percent(foreign)

In general, specify a variable containing equally spaced
midpoints, and assign to it an appropriate variable label. tabplot
will do the rest. Omit the percent() option for display of
frequencies.

A recipe for subverting tabplot to plot any variable that
takes on a single value for each cross-combination of categories is
illustrated in the examples below. The key is to select precisely one
observation for each cross-combination and to specify that variable as
(most generally) an iweight.

Furthermore, using an iweight is the only possible method
whenever a variable has at least some negative values. In that case,
you might do the following:

1. Consider changing the maximum height through height()
to avoid overlap of bars variously representing positive and negative
values. By default, tabplot chooses the scale to accommodate the
longest bar to be shown, but it contains no special intelligence
otherwise to avoid overlap of bars in the same column or row.

2. If also using showval or showval(), consider
changing offset() and using a transparent bfcolor().

Bar charts presented as one row or one column of bars go back at least
as far as Playfair (1786). See, for example, Playfair (2005, 25) or Wainer
(2005, 45; 2009, 174).

Bar charts presented in table form with two or more rows and two or more
columns are less common. Evans et al. (1933) discussed various geological
applications. Emeny (1934) used them in a well-illustrated monograph on raw
materials. Sears (1933, 1935) gave examples in pollen diagrams.
(In palynology line or area plots seem to be more common: see e.g. Faegri and Iversen 1950.)
Brinton (1914, 66) showed a hybrid (in more
recent terms) of a bumps chart and a two-way bar chart.

A variety of examples can be found in
Brinton (1939),
Neurath (1939),
Kinsey et al. (1948, 1953),
Olds (1949),
Stouffer et al. (1949a, 1949b),
Hovland et al. (1949),
Rogers (1961),
Ager (1963),
Munk et al. (1963),
Lockwood (1969),
Koch and Link (1970),
Colinvaux (1973, 1986, 1993),
Doran and Hodson (1975),
May (1976), Pianka (1976),
Bertin (1981, 1983),
Greenacre (1984),
Lebart, Morineau, and Warwick (1984),
Morrison (1985),
Zelazny (1985, 2001),
Cliff and Haggett (1988),
Anderson and May (1991),
Gleick (1993),
Carr (1994),
Hobbie et al. (1995),
Chapman and Wykes (1996),
de Falguerolles, Friedrich, and Sawitzki (1997),
Chauchat and Risson (1998),
Wild and Seber (2000),
Valiela (2001),
Mihalisin (2002),
MacKay (2003, 2009),
Wilkinson (2005),
Unwin, Theus, and Hofmann (2006),
Hahsler, Hornik, and Buchta (2008),
Hofmann (2008),
Sarkar (2008),
Theus and Urbanek (2009),
Few (2009, 2012, 2015, 2020),
Atkins (2010),
Carr and Pickle (2010, 85),
McDaniel and McDaniel (2012a, 2012b),
Merz (2012),
Robbins (2013, 124),
Heiberger and Holland (2015, 34),
Unwin (2015),
Rodriguez and Kaczmarek (2016),
Schwabish (2017, 91),
Evergreen (2017, 111),
Wexler et al. (2017),
Albert (2018),
Kriebel and Murray (2018),
Rosling et al. (2018, 211),
Sleeper (2018),
Healy (2019, 102),
Holmes and Huber (2019, 31),
Wilke (2019),
Schwabish (2021, 89-90, 97, 373-374)
and Wexler (2021, 192, 212-214).

As the example of pollen diagrams shows, the same form of graph can be
used for showing on any one axis either the categories of what is
regarded as one variable or two or more variables considered similar or
comparable. Such bar charts, or similar displays, are also known as

aligned bar charts and multipane bar charts (see Mackinlay [1986]
and McDaniel and McDaniel [2012a; 2012b]);

column graph matrices (see Harris [1999]);

survey plots (see Lohninger [1994; 1996], Hoffman and Grinstein
[2002], Grinstein et al. [2002], and Ward, Grinstein, and Keim [2010]);

table lens or table plots (see
Rao and Card [1994],
Pirolli and Rao [1996],
Spence [2001, 2007, 2014],
Ward, Grinstein, and Keim [2010],
Few [2012, 2020],
and
Cook, Lee, and Majumder [2016]);

reorderable matrices (e.g.
Siirtola and Mäkinen 2005; Mäkinen and Siirtola 2005);

Bertin plots (e.g. Carlson 2017);

multiple bar charts and fluctuation diagrams
(see Becker, Chambers, and Wilks [1988], Unwin, Theus, and Hofmann [2006],
Hofmann [2008], Theus and Urbanek [2009], and Unwin [2015]);

layered bar charts (see Streit and Gehlenborg [2014]);

panel or trellis bar charts (see Peltier [2013a, 2013b],
Rahlf [2017, 110, 214] or Gerbing [2020, 139]);

matrix charts (see Kirk [2016]);

thermometer plots and charts (see Wild and Seber [2000] or Keen [2010, 2018]);

small multiples bar charts (see Pirrone [2020] or Schwabish [2021]).

Such bar charts may require no more than a reshape. The
Examples include one with archaeological data for different levels at a site.

Displays such as bar and pie charts with added numeric labels
have been called "grables" (Hink, Wogalter, and Eustace 1996; Hink, Eustace,
and Wogalter 1998; Bradstreet 2012).

We note also what are often called Hinton diagrams or Hinton
plots in machine learning. Rumelhart et al. (1986) is a token reference.
Examples occur in mainstream machine learning texts such as MacKay (2003),
Bishop (2006), Barber (2012), and Murphy (2012).

See also the general discussion of product plots (Wickham and
Hofmann 2011) centring on the use of area to represents counts, proportions
and probabilities.

Brinton (1939, 142, 505) uses the term "two-way bar chart" for
back-to-back or bilateral bar charts, a use different from that here.

Similar references would be much appreciated by the author.

For applications of tabplot, see also Cox (2004, 2008, 2012)
or Roberts et al. (2013) or search Statalist.

Examples

Stata's automobile data:

. sysuse auto, clear

. tabplot rep78

. tabplot rep78, showval

. tabplot rep78, showval horizontal

. tabplot for rep78

. tabplot for rep78, showval

. tabplot for rep78, percent(foreign) showval(offset(0.05) format(%2.1f))

. tabplot for rep78, percent(foreign) sep(foreign) bar1(bcolor(red*0.5)) bar2(bcolor(blue*0.5)) showval(offset(0.05) format(%2.1f)) subtitle(% by origin)

. tabplot rep78 mpg, xasis barw(1) bstyle(histogram)

. egen mean = mean(mpg), by(rep78)

. gen rep78_2 = 6 - rep78 - 0.05

. bysort rep78 : gen byte tag = _n == 1

. tabplot rep78 mpg, xasis barw(1) bstyle(histogram) addplot(scatter rep78_2 mean if tag)

. drop tag

. egen mean2 = mean(mpg), by(foreign rep78)

. egen tag = tag(foreign rep78)

. tabplot foreign rep78 if tag [iw=mean2], showval(format(%2.1f)) subtitle(mean miles per gallon)

Stata's radiologist assessment data:

. webuse rate2, clear

. tabplot rad?, percent showval

. count

. bysort rada radb : gen show = string(_N) + " " + string(_N * 100/85, "%2.1f") + "%"

. tabplot rad?, showval(show) subtitle("frequency and %")

. tabplot rad?, showval(show) xsc(alt) subtitle("frequency and %", pos(7))

Doran and Hodson (1975, 259) gave these archaeological data:

. clear

. input levels freqcores freqblanks freqtools

25 21 32 70

24 36 52 115

23 126 650 549

22 159 2342 1633

21 75 487 511

20 176 1090 912

19 132 713 578

18 46 374 266

17 550 6182 1541

16 76 846 349

15 17 182 51

14 4 51 14

13 29 228 130

12 135 2227 729

end

. reshape long freq, i(levels) j(type) string

. tabplot levels type [w=freq], bfcolor(none) horizontal barw(1) percent(levels) subtitle(% at each level) showval(offset(0.45)) xsc(r(0.8 .)) yasis

Greenacre (2007, 42; 2017, 42) gave these data from the 1997
Encuesta Nacional de la Salud (Spanish National Health Survey):

. clear

. input byte(agegroup health) long freq

1 1 243

1 2 789

1 3 167

1 4 18

1 5 6

2 1 220

2 2 809

2 3 164

2 4 35

2 5 6

3 1 147

3 2 658

3 3 181

3 4 41

3 5 8

4 1 90

4 2 469

4 3 236

4 4 50

4 5 16

5 1 53

5 2 414

5 3 306

5 4 106

5 5 30

6 1 44

6 2 267

6 3 284

6 4 98

6 5 20

7 1 20

7 2 136

7 3 157

7 4 66

7 5 17

end

. label values agegroup agegroup

. label def agegroup 1 "16-24", modify

. label def agegroup 2 "25-34", modify

. label def agegroup 3 "35-44", modify

. label def agegroup 4 "45-54", modify

. label def agegroup 5 "55-64", modify

. label def agegroup 6 "65-74", modify

. label def agegroup 7 "75+", modify

. label values health health

. label def health 1 "very good", modify

. label def health 2 "good", modify

. label def health 3 "regular", modify

. label def health 4 "bad", modify

. label def health 5 "very bad", modify

. tabplot health agegroup [w=freq] , percent(agegroup) showval subtitle(% of age group) xtitle("") bfcolor(none)

Aitkin et al. (1989, 242) reported
data from a survey of student opinion on the Vietnam War taken at the
University of North Carolina at Chapel Hill in May 1967. Students were
classified by sex, year of study, and the policy they supported, given
the following choices:

A. The United States should defeat the power of North Vietnam by widespread
bombing of its industries, ports, and harbors and by land invasion.

B. The United States should follow the present policy in Vietnam.

C. The United States should de-escalate its military activity, stop bombing
North Vietnam, and intensify its efforts to begin negotiation.

D. The United States should withdraw its military forces from Vietnam
immediately.

(They also report response rates [page 243], which average 26% for males and
17% for females.)

. clear

. input str6 sex str8 year str1 policy int freq

"male" "1" "A" 175

"male" "1" "B" 116

"male" "1" "C" 131

"male" "1" "D" 17

"male" "2" "A" 160

"male" "2" "B" 126

"male" "2" "C" 135

"male" "2" "D" 21

"male" "3" "A" 132

"male" "3" "B" 120

"male" "3" "C" 154

"male" "3" "D" 29

"male" "4" "A" 145

"male" "4" "B" 95

"male" "4" "C" 185

"male" "4" "D" 44

"male" "Graduate" "A" 118

"male" "Graduate" "B" 176

"male" "Graduate" "C" 345

"male" "Graduate" "D" 141

"female" "1" "A" 13

"female" "1" "B" 19

"female" "1" "C" 40

"female" "1" "D" 5

"female" "2" "A" 5

"female" "2" "B" 9

"female" "2" "C" 33

"female" "2" "D" 3

"female" "3" "A" 22

"female" "3" "B" 29

"female" "3" "C" 110

"female" "3" "D" 6

"female" "4" "A" 12

"female" "4" "B" 21

"female" "4" "C" 58

"female" "4" "D" 10

"female" "Graduate" "A" 19

"female" "Graduate" "B" 27

"female" "Graduate" "C" 128

"female" "Graduate" "D" 13

end

. tabplot policy year [w=freq], by(sex, subtitle(% by sex and year, place(w)) note("")) percent(sex year) showval

. tabplot policy year [w=freq], by(sex, subtitle(% by sex and year, place(w)) note("")) percent(sex year) showval frame(100)

Aigner et al. (2011, pp.142-143) gave an example with
loadings from PCA, which inspired this example:

. use http://www.stata-press.com/data/r16/audiometric.dta, clear

. pca *00

. * ssc install pcacoefsave

. pcacoefsave using pca_audiometric

. use pca_audiometric

. tabplot varname PC [iw=corr] if PC <= 4, horizontal height(0.5) bfcolor(none) subtitle(correlations) note(maximum 0.834)

Acknowledgments

Bob Fitzgerald, Friedrich Huebler, and Martyn Sherriff found typos in
earlier versions of this help file. Friedrich also pointed to various
efficiency issues. Marcello Pagano provided encouragement and found a bug.
Vince Wiggins suggested how best to align x-axis labels when bars are
horizontal. Jay Goodliffe suggested flagging use of the subtitle()
option in this help. Maarten Buis pointed out that compound double quotes
may be needed to handle value labels. William Huber and Jeff Laux indirectly
encouraged addition of the frame() option. Marc Kaulisch unearthed
another bug.

References

Ager, D. V. 1963.
Principles of Paleoecology: An Introduction to the Study of How and Where Animals and Plants Lived in the Past.
New York: McGraw-Hill.

Aigner, W., S. Miksch, H. Schumann, and C. Tominski. 2011.
Visualization of Time-Oriented Data.
London: Springer.

Aitkin, M., D. Anderson, B. Francis, and J. Hinde. 1989.
Statistical Modelling in GLIM. Oxford: Oxford University Press.

Albert, J. 2018.
Visualizing Baseball.
Boca Raton, FL: CRC Press.

Anderson, R. M., and R. M. May. 1991.
Infectious Diseases of Humans: Dynamics and Control.
Oxford: Oxford University Press.

Atkins, P. 2010.
Liquid Materialities: A History of Milk, Science and the Law.
Farnham, UK: Ashgate.

Barber, D. 2012.
Bayesian Reasoning and Machine Learning.
Cambridge: Cambridge University Press.

Becker, R. A., J. M. Chambers, and A. R. Wilks. 1988.
The New S Language: A Programming Environment for Data Analysis and Graphics.
Pacific Grove, CA: Wadsworth and Brooks/Cole.

Bertin, J. 1981.
Graphics and Graphic Information Processing.
Berlin: De Gruyter.

Bertin, J. 1983.
Semiology of Graphics: Diagrams, Networks, Maps.
Madison: University of Wisconsin Press.

Bishop, C. M. 2006.
Pattern Recognition and Machine Learning.
New York: Springer.

Bradstreet, T. E. 2012.
Grables: Visual displays that combine the best attributes of graphs
and tables.
In
A Picture is Worth a Thousand Tables: Graphics in Life Sciences,
ed. A. Krause and M. O'Connell, 41-69. New York: Springer.

Brinton, W. C. 1914.
Graphic Methods for Presenting Facts.
New York: Engineering Magazine Company.

Brinton, W. C. 1939.
Graphic Presentation.
New York: Brinton Associates.

Carlson, D. L. 2017.
Quantitative Methods in Archaeology Using R.
Cambridge: Cambridge University Press.

Carr, D. B. 1994.
Using gray in plots.
Statistical Computing and Statistical Graphics Newsletter 5(1): 11-14.

Carr, D. B., and L. W. Pickle. 2010.
Visualizing Data Patterns with Micromaps.
Boca Raton, FL: Chapman & Hall/CRC.

Chapman, M. and C. Wykes. 1996.
Plain Figures. 2nd ed.
London: The Stationary Office.

Chauchat, J.-H., and A. Risson. 1998.
Bertin's graphics and multidimensional data analysis.
In Visualization of Categorical Data,
ed. J. Blasius and M. Greenacre, 37-45.
San Diego, CA: Academic Press.

Cleveland, W.S. 1985.
The Elements of Graphing Data.
Monterey, CA: Wadsworth.

Cleveland, W.S. 1994.
The Elements of Graphing Data.
Summit, NJ: Hobart Press.

Cleveland, W.S. and R. McGill. 1984.
Graphical perception: theory, experimentation, and application to the
development of graphical methods.
Journal of the American Statistical Association
79: 531-554,

Cliff, A. D., and P. Haggett. 1988.
Atlas of Disease Distributions: Analytic Approaches to Epidemiological Data.
Oxford: Blackwell.

Colinvaux, P. A. 1973.
Introduction to Ecology.
New York: John Wiley.

Colinvaux, P. A. 1986.
Ecology.
New York: John Wiley.

Colinvaux, P. A. 1993.
Ecology 2.
New York: John Wiley.

Cook, D., E.-K. Lee, and M. Majumder. 2016.
Data visualization and statistical graphics in big data analysis.
Annual Review of Statistics and its Applications 3: 133-159.

Cox, N. J. 2004.
Speaking Stata: Graphing categorical and compositional data.
Stata Journal 4: 190-215.

Cox, N. J. 2007.
Stata tip 52: Generating composite categorical variables.
Stata Journal 7: 582-583.

Cox, N. J. 2008.
Speaking Stata: Spineplots and their kin.
Stata Journal 8: 105-121.

Cox, N. J. 2012.
Speaking Stata: Axis practice, or what goes where on a graph.
Stata Journal 12: 549-561.

de Falguerolles, A., F. Friedrich, and G. Sawitzki. 1997.
A tribute to J. Bertin's graphical data analysis.
In Softstat '97: Advances in Statistical Software 6: The 9th Conference on the Scientific Use of Statistical Software, March 3-6, 1997,
ed. W. Bandilla and F. Faulbaum, 11-20.
Stuttgart: Lucius & Lucius.

Doran, J. E., and F. R. Hodson. 1975.
Mathematics and Computers in Archaeology.
Edinburgh: Edinburgh University Press.

Emeny, B. 1934.
The Strategy of Raw Materials: A Study of America in Peace and War.
New York: Macmillan.

Evans, P., R. J. Hayman and M. A. Majeed. 1933.
The graphical representation of heavy mineral analyses.
London: 1st World Petroleum Congress 1: 251-256. WPC-1060.
https://www.onepetro.org/download/conference-paper/WPC-1060?id=conference-paper%2FWPC-1060

Evergreen, S. D. H. 2017.
Effective Data Visualization: The Right Chart for the Right Data.
Thousand Oaks, CA: SAGE.

Faegri, K. and J. Iversen. 1950.
Textbook of Modern Pollen Analysis.
Copenhagen: Ejnar Munksgaard. [later editions to 1989]

Few, S. 2009.
Now You See It: Simple Visualization Techniques for Quantitative Analysis.
Oakland, CA: Analytics Press.

Few, S. 2012.
Show Me the Numbers: Designing Tables and Graphs to Enlighten. 2nd ed.
Burlingame, CA: Analytics Press.

Few, S. 2015.
Signal: Understanding What Matters in a World of Noise.
Burlingame, CA: Analytics Press.

Few, S. 2020.
Now You See It: An Introduction to Visual Sensemaking..
El Dorado Hills, CA: Analytics Press.

Gerbing, D. W. 2020.
R Visualizations: Derive Meaning from Data.
Boca Raton, FL: CRC Press.

Gleick, P. H., ed. 1993.
Water in Crisis: A Guide to the World's Fresh Water Resources.
New York: Oxford University Press.

Greenacre, M. 1984. Theory and Applications of Correspondence Analysis.
London: Academic Press.

Greenacre, M. 2007. Correspondence Analysis in Practice.
2nd ed. Boca Raton, FL: Chapman & Hall/CRC.

Greenacre, M. 2017. Correspondence Analysis in Practice.
3rd ed. Boca Raton, FL: CRC Press.

Grinstein, G. G., P. E. Hoffman, R. M. Pickett, and S. J. Laskowski. 2002.
Benchmark development for the evaluation of visualization for data mining.
In
Information Visualization in Data Mining and Knowledge Discovery,
ed. U. Fayyad, G. G. Grinstein, and A. Wierse, 129-176.
San Diego, CA: Academic Press.

Hahsler, M., K. Hornik, and C. Buchta. 2008.
Getting things in order: An introduction to the R package seriation.
Journal of Statistical Software 25(3): 1-34.
http://www.jstatsoft.org/v25/i03.

Harris, R. L. 1999.
Information Graphics: A Comprehensive Illustrated Reference.
New York: Oxford University Press.

Healy, K. 2019.
Data Visualization: A Practical Introduction.
Princeton, NJ: Princeton University Press.

Heiberger, R.M. and B. Holland. 2015.
Statistical Analysis and Data Display: An Intermediate Course with Examples in R.
New York: Springer.

Hink, J. K., J. K. Eustace, and M. S. Wogalter. 1998.
Do grables enable the extraction of quantitative information
better than pure graphs or tables?
International Journal of Industrial Ergonomics 22: 439-447.

Hink, J. K., M. S. Wogalter, and J. K. Eustace. 1996.
Display of quantitative information:
Are grables better than plain graphs or tables?
Proceedings of the Human Factors and Ergonomics Society Annual Meeting
40: 1155-1159.

Hobbie, J. E., L. A. Deegan, B. J. Peterson, E. B. Rastetter,
G. R. Shaver, G. W. Kling, W. J. O'Brien, F. S. T. Chapin, M. C. Miller,
G. W. Kipphut, W. B. Bowden, A. E. Hershey, and M. E. McDonald.
1995. Long-term measurements at the Arctic LTER site.
In Ecological Time Series,
ed. T. M. Powell and J. H. Steele, 391-409.
New York: Chapman and Hall.

Hoffman, P. E., and G. G. Grinstein. 2002.
A survey of visualizations for high-dimensional data mining.
In Information Visualization in Data Mining and Knowledge Discovery,
ed. U. Fayyad, G. G. Grinstein, and A. Wierse, 47-82.
San Diego, CA: Academic Press.

Hofmann, H. 2008.
Mosaic plots and their variants.
In Handbook of Data Visualization,
ed. C. Chen, W. Härdle, and A. Unwin, 617-642.
Berlin: Springer.

Holmes, S. and W. Huber. 2019.
Modern Statistics for Modern Biology.
Cambridge: Cambridge University Press.

Hovland, C. I., A. A. Lumsdaine and F. D. Sheffield. 1949.
Experiments on Mass Communication.
Princeton, NJ: Princeton University Press.

Keen, K. J. 2010 (second edition 2018).
Graphics for Statistics and Data Analysis with R.
Boca Raton, FL: CRC Press.

Kinsey, A. C., W. B. Pomeroy and C. E. Martin. 1948.
Sexual Behavior in the Human Male.
Philadelphia: W.B. Saunders.

Kinsey, A. C., W. B. Pomeroy, C. E. Martin and P. H. Gebhard. 1953.
Sexual Behavior in the Human Female.
Philadelphia: W.B. Saunders.

Kirk, A. 2016.
Data Visualization: A Handbook for Data Driven Design.
London: SAGE.

Koch, G. S., Jr., and R. F. Link. 1970.
Statistical Analysis of Geological Data: Volume I.
New York: Wiley.

Kriebel, A. and E. Murray. 2018.
#MakeoverMonday: Improving How We Visualize and Analyze Data, One Chart at a Time.
Hoboken, NJ: John Wiley.

Lebart, L., A. Morineau, and K. M. Warwick. 1984.
Multivariate Descriptive Statistical Analysis: Correspondence Analysis and Related Techniques for Large Matrices.
New York: Wiley.

Lockwood, A. 1969.
Diagrams: A Visual Survey of Graphs, Maps, Charts and Diagrams for the Graphic Designer.
London: Studio Vista.

Lohninger, H. 1994.
INSPECT: A program system to visualize and interpret chemical data.
Chemometrics and Intelligent Laboratory Systems 22: 147-153.

Lohninger, H. 1996.
INSPECT: A Program System for Scientific and Engineering Data.
Berlin: Springer.

MacKay, D. J. C. 2003.
Information Theory, Inference, and Learning Algorithms.
Cambridge: Cambridge University Press.

MacKay, D. J. C. 2009.
Sustainable Energy - Without the Hot Air.
Cambridge: UIT Cambridge.

Mackinlay, J. D. 1986.
Automating the design of graphical presentations of relational information.
ACM Transactions on Graphics 5: 110-141.

Mäkinen, E. and H. Siirtola. 2005.
The barycenter heuristic and the reorderable matrix.
Informatica (Slovenia) 29: 357-364.

May, R. M. 1976.
Patterns in multi-species communities.
In Theoretical Ecology: Principles and Applications,
ed. R. M. May, 142-162. Oxford: Blackwell Scientific. See p.150.

McDaniel, E., and S. McDaniel. 2012a.
The Accidental Analyst: Show Your Data Who's Boss.
Seattle, WA: Freakalytics.

McDaniel, S., and E. McDaniel. 2012b.
Rapid Graphs with Tableau Software 7: Create Intuitive, Actionable Insights in Just 15 Days.
Seattle, WA: Freakalytics.

Merz, M. 2012.
(Interactive) Graphics for biomarker assessment.
In
A Picture is Worth a Thousand Tables: Graphics in Life Sciences,
ed. A. Krause and M. O'Connell, 117-138. New York: Springer.

Mihalisin, T. W. 2002.
Data warfare and multidimensional education.
In
Information Visualization in Data Mining and Knowledge Discovery,
ed. U. Fayyad, G. G. Grinstein, and A. Wierse, 315-344.
San Diego, CA: Academic Press.

Morrison, P. S. 1985.
Symbolic representation of tabular data.
New Zealand Journal of Geography 79: 11-18.

Munk, W. H., G. R. Miller, F. E. Snodgrass, and N. F. Barber.
1963.
Directional recording of swell from distant storms.
Philosophical Transactions of the Royal Society of London, Series A
255: 505-584. See pp.531-533, 541-544, 550.
https://www.jstor.org/stable/pdf/73101.pdf

Munzner, T. 2015.
Visualization Analysis and Design.
Boca Raton, FL: CRC Press. On frames: pp.112-113.

Murphy, K. P. 2012.
Machine Learning: A Probabilistic Perspective.
Cambridge, MA: MIT Press.

Neurath, O. 1939.
Modern Man in the Making.
London: Secker and Warburg.

Olds, E. B. 1949.
The city block as a unit for recording and analyzing urban data.
Journal of the American Statistical Association 44: 485-500.

Peltier, J. 2013a.
Alternatives to a 3D Bar Chart.
https://peltiertech.com/3d-bar-chart-alternatives/
[September 12]

Peltier, J. 2013b.
Column Chart with Primary and Secondary Axes
https://peltiertech.com/excel-column-chart-primary-secondary-axes/
[October 28].

Peltier, J. Note many similar posts on the author's site.

Pianka, E. R. 1976.
Competition and niche theory.
In Theoretical Ecology: Principles and Applications,
ed. R. M. May, 114-141. Oxford: Blackwell Scientific. See p.132.

Pirolli, P., and R. Rao. 1996.
Table lens as a tool for making sense of data.
In AVI '96: Proceedings of the Workshop on Advanced Visual Interfaces,
ed. T. Catarci, M. F. Costabile, S. Levialdi, and G. Santucci, 67-80.
New York: Association for Computing Machinery.

Pirrone, A. 2020.
Visualizing Likert scale data: same data, displayed seven different ways.
https://medium.com/nightingale/seven-different-ways-to-display-likert-scale-data-d0c1c9a9ad59

Playfair, W. H. 1786.
The Commercial and Political Atlas.
London: Robinson, Sewell, and Debrett.

Playfair, W. H. 2005.
The Commercial and Political Atlas and Statistical Breviary.
Cambridge: Cambridge University Press.
Edited by H. Wainer and I. Spence.

Rahlf, T. 2017.
Data Visualisation with R: 100 Examples.
Cham, Switzerland: Springer.

Rao, R., and S. K. Card. 1994.
The table lens: Merging graphical and symbolic representations in an
interactive focus + context visualization for tabular information.
In
CHI '94: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems,
ed. B. Adelson, S. Dumais, and J. S. Olson, 318-322.
New York: Association for Computing Machinery.

Roberts, D. H., D. J. A. Evans, J. Lodwick and N. J. Cox.
2013.
The subglacial and ice-marginal signature of the North Sea Lobe of the
British-Irish Ice Sheet during the Last Glacial Maximum at Upgang, North
Yorkshire, UK.
Proceedings of the Geologists' Association
124: 503-519
http://dx.doi.org/10.1016/j.pgeola.2012.08.009

Robbins, N. B. 2013.
Creating More Effective Graphs.
Wayne, NJ: Chart House.

Rodriguez, J. and P. Kaczmarek. 2016.
Visualizing Financial Data.
Indianapolis, IN: Wiley.

Rogers, A. C. 1961.
Graphic Charts Handbook.
Washington, DC: Public Affairs Press.

Rumelhart, D. E., G. E. Hinton, and R. J. Williams. 1986.
Learning representations by back-propagating errors.
Nature 323: 533-536.

Sarkar, D. 2008.
Lattice: Multivariate Data Visualization with R.
New York: Springer.

Schwabish, J. 2017.
Better Presentations: A Guide for Scholars, Researchers, and Wonks.
New York: Columbia University Press.

Schwabish, J. 2021.
Better Data Visualizations: A Guide for Scholars, Researchers, and Wonks.
New York: Columbia University Press.

Sears, P. B. 1933.
Climatic change as a factor in forest succession.
Journal of Forestry 31: 934-942.

Sears, P. B. 1935.
Types of North American pollen profiles.
Ecology 16: 488-499.

Siirtola, H. and E. Mäkinen. 2005.
Constructing and reconstructing the reorderable matrix.
Information Visualization 4: 32-48.

Sleeper, R. 2018.
Practical Tableau: 100 Tips, Tutorials, and Strategies from a Tableau Zen Master.
Sebastopol, CA: O'Reilly. See p.149.

Snyder, T. 2012.
Data visualization for clinical trials data management and operations.
In
A Picture is Worth a Thousand Tables: Graphics in Life Sciences,
ed. A. Krause and M. O'Connell, 359-372. New York: Springer.

Spence, R. 2001.
Information Visualization.
Harlow, UK: Pearson.

Spence, R. 2007.
Information Visualization: Design for Interaction. 2nd ed.
Harlow, UK: Pearson.

Spence, R. 2014.
Information Visualization: An introduction. 3rd ed.
Cham: Springer.

Stouffer, S. A., E. A. Suchman, L. C. DeVinney, S. A. Star, and R. M.
Williams, Jr. 1949a.
The American Soldier: Adjustment During Army Life.
Princeton, NJ: Princeton University Press.

Stouffer, S. A., A. A. Lumsdaine, M. H. Lumsdaine, R. M. Williams, Jr.,
M. B. Smith, I. L. Janis, S. A. Star, and L. S. Cottrell. 1949b.
The American Soldier: Combat and its Aftermath.
Princeton, NJ: Princeton University Press.

Streit, M., and N. Gehlenborg. 2014. Bar charts and box plots.
Nature Methods 11: 117.
http://dx.doi.org/10.1038/nmeth.2807

Theus, M., and S. Urbanek. 2009.
Interactive Graphics for Data Analysis: Principles and Examples.
Boca Raton, FL: Chapman & Hall/CRC.

Unwin, A. 2015.
Graphical Data Analysis with R.
Boca Raton, FL: Taylor & Francis.

Unwin, A., M. Theus, and H. Hofmann. 2006.
Graphics of Large Datasets: Visualizing a Million.
New York: Springer.

Valiela, I. 2001.
Doing Science: Design, Analysis, and Communication of Scientific Research.
New York: Oxford University Press.

Wainer, H. 2005.
Graphic Discovery: A Trout in the Milk and Other Visual Adventures.
Princeton, NJ: Princeton University Press.

Wainer, H. 2009.
Picturing the Uncertain World: How to Understand, Communicate, and Control Uncertainty through Graphical Display.
Princeton, NJ: Princeton University Press.

Ward, M., G. Grinstein, and D. Keim. 2010.
Interactive Data Visualization: Foundations, Techniques, and Applications.
Natick, MA: A K Peters.

Wexler, S. 2021.
The Big Picture: How to Use Data Visualizations to Make Better Decisions-Faster. New York: McGraw Hill.

Wexler, S., J. Shaffer and A. Cotgreave. 2017.
The Big Book of Dashboards: Visualizing Your Data Using Real-World Business Scenarios.
Hoboken, NJ: John Wiley.
See pp.63, 65, 66, 225, 228, 247, 249-252, 257, 283, 288-290.

Wickham, H. and H. Hofmann. 2011. Product plots.
IEEE Transactions on Visualization and Computer Graphics 17:
2223-2230.

Wild, C.J. and G.A.F. Seber. 2000.
Chance Encounters: A First Course in Data Analysis and Inference.
New York: John Wiley.

Wilke, C.O. 2019.
Fundamentals of Data Visualization: A Primer on Making Informative and Compelling Figures.
Sebastopol, CA: O'Reilly.

Wilkinson, L. 1999.
The Grammar of Graphics.
New York: Springer.

Wilkinson, L. 2005.
The Grammar of Graphics. 2nd ed.
New York: Springer.

Yau, N. 2013.
Data Points: Visualization That Means Something.
Indianapolis, IN: John Wiley. See p.123.

Zelazny, G. 1985.
Say It With Charts: The Executive's Guide to Successful Presentations.
Homewood, IL: Dow Jones-Irwin.

Zelazny, G. 2001.
Say It With Charts: The Executive's Guide to Visual Communication.
New York: McGraw-Hill. See p.14.

Author

Nicholas J. Cox, Durham University, U.K.

n.j.cox@durham.ac.uk

Also see

Article: Stata Journal, volume 17, number 3: gr0066_1,

Stata Journal, volume 16, number 2: gr0066

Help: twoway rbar, histogram,
catplot (if installed), spineplot (if installed)