-
Notifications
You must be signed in to change notification settings - Fork 2
Parallel coordinates plot
yihui edited this page Nov 17, 2010
·
13 revisions
See details in the R documentation.
What qparallel()
can do now:
- select a number of variables to show via variable names (character) or formula (e.g.
~ x1 + x2
); - 3 standardizing methods,
I
,range
andvar
; or the users can define their own functions to standardize data; - accept colors for each observation from the mutaframe (
.color
column); - draw either horizontal or vertical plots;
- add boxplots of each variable to the par-coords plot (with widths specified or using default values); no boxplots for non-numeric columns (does not make sense for character or logical columns);
- jitter one or more variables (with a specified amount);
- specify margin widths (between the main plot region and the axes);
- center/anchor all the axes at specified locations, e.g. force all axes align at their medians (think Tukey's rootgrams);
- handle missing values; impute by 20%-below-the-minimum by default;
- use points (can specify different glyphs) in case of large data (n*p>50000) instead of complete lines for all rows
- order variables by MDS: similar variables will be arranged nearer to each other
- automatically break axis tick labels which contain non-alphanumeric characters (replace them by '\n' to break into multiple lines)
- left-click and drag to move the brush;
- right-click to resize the brush;
- selection sequences by key modifiers; we can select some objects by a certain condition in one plot, and go to the other plot to select objects that meet both conditions (intersection);
- A: and, intersection
- O: or, union
- N: not, flip
- X: xor, toggle
- C: complement
- show the data labels and the row ids (obtained from
rownames(qdata)
) - record the brush history (can go back and forth -- use the key PageUp and PageDown)
- switch the order of variables (i.e. move an axis or several axes left/right/up/down) and flip the values of a variable using the arrow keys
- when the plot is horizontal: left <--; right -->; up or down: flip values
- vertical plots: left or right: flip values; up similar to right in horizontal plots; down similar to left
Since the plots are in a pipeline, modifications to the data or the brushing attributes can be reflected in all the plots immediately.
iris:
residential data: 18221x8
- Brushing (and resize the brush): http://vimeo.com/11527436
- Set fireworks: http://vimeo.com/11527728
- Identifying observations: http://vimeo.com/16634690
- Switch the order of variables: http://vimeo.com/16929772
- [done] ordering variables: the R package
[[seriation|http://cran.r-project.org/package=seriation]]
might be a good place to look at- I decided to implement classical MDS only; I don't want to include all the functionalities in
seriation
(it does not sense to do so either)
- I decided to implement classical MDS only; I don't want to include all the functionalities in
- flip variables
- show labels when hover
- [in progress] packaging
- manually switching variable orders (e.g. use arrow keys)
- [done] brushing history: can be stored in a mutalist
- color palettes
- point glyphs?
- faceting?