Lattice: Multivariate Data Visualization with R
Author: Deepayan Sarkar
R is rapidly growing in popularity as the environment of choice for data analysis and graphics both in academia and industry. Lattice brings the proven design of Trellis graphics (originally developed for S by William S. Cleveland and colleagues at Bell Labs) to R, considerably expanding its capabilities in the process. Lattice is a powerful and elegant high level data visualization system that is sufficient for most everyday graphics needs, yet flexible enough to be easily extended to handle demands of cutting edge research. Written by the author of the lattice system, this book describes it in considerable depth, beginning with the essentials and systematically delving into specific low levels details as necessary. No prior experience with lattice is required to read the book, although basic familiarity with R is assumed.
The book contains close to150 figures produced with lattice. Many of the examples emphasize principles of good graphical design; almost all use real data sets that are publicly available in various R packages. All code and figures in the book are also available online, along with supplementary material covering more advanced topics.
Table of Contents:
Preface viiIntroduction 1
Multipanel conditioning 2
A histogram for every group 2
The Trellis call 3
Kernel density plots 4
Superposition 5
The "trellis" object 6
The missing Trellis display 7
Arranging multiple Trellis plots 7
Looking ahead 7
Basics
A Technical Overview of lattice 13
Basic usage 13
The Trellis formula 13
The data argument 14
Conditioning 14
Shingles 15
Dimension and physical layout 16
Aspect ratio 19
Layout 20
Fine-tuning the layout: between and skip 24
Grouped displays 24
Annotation: Captions, labels, and legends 26
More on legends 26
Graphing the data 28
Scales and axes 28
The panel function 30
The panel function demystified 31
Return value 33
Visualizing Univariate Distributions 35
Density Plot 35
Large datasets 37
Histograms 39
Normal Q-Q plots 40
Normality and the Box-Cox transformation 42
Other theoretical Q-Q plots 43
The empirical CDF 44
Two-sample Q-Q plots 44
Box-and-whisker plots 47
Violin plots 47
Strip plots 50
Coercion rules 52
Discrete distributions 53
A note on the formula interface 54
Displaying Multiway Tables 55
Cleveland dot plot 55
Bar chart 57
Manipulating order 61
Bar charts and discrete distributions 63
Visualizing categorical data 65
Scatter Plots and Extensions 67
The standard scatter plot 67
Advanced indexing using subscripts 71
Variants using the type argument 75
Superposition and type 79
Scatter-plot variants for large data 82
Scatter-plot matrix 84
Interacting with scatter-plot matrices 86
Parallel coordinates plot 87
Trivariate Displays 91
Three-dimensional scatter plots 91
Dynamic manipulation versus stereo viewing 95
Variants and panel functions 96
Surfaces and two-way tables 98
Data preparation 99
Visualizing surfaces 102
Visualizing discrete array data 105
Theoretical surfaces 110
Parameterized surfaces 111
Choosing a palette for false-color plots 113
Finer Control
Graphical Parameters and Other Settings 119
The parameter system 119
Themes 120
Devices 120
Initializing a graphics device 121
Reading and modifying a theme 122
Usage and alternative forms 125
The par.settings argument 125
Available graphical parameters 126
Nonstandard settings 129
Non-graphical options 131
Argument defaults 131
Making customizations persistent 131
Plot Coordinates and Axis Annotation 133
Packets and the prepanel function 133
The scales argument 134
Relation 134
Axis annotation: Ticks and labels 135
Defaults 138
Three-dimensional displays: cloud() and wireframe() 139
Limits and aspect ratio 140
The prepanel function revisited 140
Explicit specification of limits 141
Choosing aspect ratio by banking 143
Scale components and the axis function 144
Components 144
Axis 148
Labels and Legends 151
Labels 151
Legends 152
Legends as grid graphical objects 152
The colorkey argument 155
The key argument 156
The problem with settings, and the auto.key argument 158
Dropping unused levels from groups 159
A more complicated example 159
Further control: The legend argument 161
Page annotation 162
Data Manipulation and Related Topics 165
Nonstandard evaluation 165
The extended formula interface 166
Combining data sources with make.groups() 170
Subsetting 173
Dropping of factor levels 176
Shingles and related utilities 177
Coercion to factors and shingles 182
Using shingles for axis breaks 183
Cut-and-stack plots 184
Ordering levels of categorical variables 187
Controlling the appearance of strips 193
An Example Revisited 198
Manipulating the "trellis" Object 201
Methods for "trellis" objects 201
The plot(), print(), and summary() methods 202
The update() method and trellis.last.object() 206
Tukey mean-difference plot 208
Specialized manipulations 210
Manipulating the display 211
Interacting with Trellis Displays 215
The traditional graphics model 215
Interaction 216
Viewports, trellis.vpname(), and trellis.focus() 216
Interactive additions 217
Other uses 223
Extending Trellis Displays
Advanced Panel Functions 229
Preliminaries 229
Building blocks for panel functions 229
Accessor functions 231
Arguments 232
A toy example: Hypotrochoids and hypocycloids 232
Some more examples 235
An alternative density estimate 235
A modified box-and-whisker plot 237
Corrgrams as customized level plots 238
Three-dimensional projections 241
Maps 242
A simple projection scheme 244
Maps with conditioning 245
New Trellis Displays 247
S3 methods 248
S4 methods 249
New functions 251
A complete example: Multipanel pie charts 252
References 255
Index 259
Books about: Bereich-Guide zum Verstehen des Menschlichen Fehlers
Effective Software Test Automation: Developing an Automated Software Testing Tool
Author: Kanglin Li
"If you'd like a glimpse at how the next generation is going to program, this book is a good place to start."
—Gregory V. Wilson, Dr. Dobbs Journal (October 2004)
Build Your Own Automated Software Testing Tool
Whatever its claims, commercially available testing software is not automatic. Configuring it to test your product is almost as time-consuming and error-prone as purely manual testing.
There is an alternative that makes both engineering and economic sense: building your own, truly automatic tool. Inside, you'll learn a repeatable, step-by-step approach, suitable for virtually any development environment. Code-intensive examples support the book's instruction, which includes these key topics:
• Conducting active software testing without capture/replay
• Generating a script to test all members of one class without reverse-engineering
• Using XML to store previously designed testing cases
• Automatically generating testing data
• Combining Reflection and CodeDom to write test scripts focused on high-risk areas
• Generating test scripts from external data sources
• Using real and complete objects for integration testing
• Modifying your tool to test third-party software components
• Testing your testing tool
Effective Software Test Automation goes well beyond the building of your own testing tool: it also provides expert guidance on deploying it in ways that let you reap the greatest benefits: earlier detection of coding errors, a smoother, swifter development process,and final software that is as bug-free as possible. Written for programmers, testers, designers, and managers, it will improve the way your team works and the quality of its products.
No comments:
Post a Comment