biplot.psych | R Documentation |

Extends the biplot function to the output of `fa`

, `fa.poly`

or `principal`

. Will plot factor scores and factor loadings in the same graph. If the number of factors > 2, then all pairs of factors are plotted. Factor score histograms are plotted on the diagonal. The input is the resulting object from `fa`

, `principal`

, or }code{linkfa.poly with the scores=TRUE option. Points may be colored according to other criteria.

```
## S3 method for class 'psych'
biplot(x, labels=NULL,cex=c(.75,1),main="Biplot from fa",
hist.col="cyan",xlim.s=c(-3,3),ylim.s=c(-3,3),xlim.f=c(-1,1),ylim.f=c(-1,1),
maxpoints=100,adjust=1.2,col,pos, arrow.len = 0.1,pch=16,choose=NULL,
cuts=1,cutl=.0,group=NULL,smoother=FALSE,vars=TRUE,...)
```

`x` |
The output from |

`labels` |
if NULL, draw the points with the plot character (pch) specified. To identify the data points, specify labels= 1:n where n is the number of observations, or labels =rownames(data) where data was the data set analyzed by the factor analysis. |

`cex` |
A vector of plot sizes of the data labels and of the factor labels |

`main` |
A main title for a two factor biplot |

`hist.col` |
If plotting more than two factors, the color of the histogram of the factor scores |

`xlim.s` |
x limits of the scores. Defaults to plus/minus three sigma |

`ylim.s` |
y limits of the scores.Defaults to plus/minus three sigma |

`xlim.f` |
x limits of the factor loadings.Defaults to plus/minus 1.0 |

`ylim.f` |
y limits of the factor loadings.Defaults to plus/minus 1.0 |

`maxpoints` |
When plotting 3 (or more) dimensions, at what size should we switch from plotting "o" to plotting "." |

`adjust` |
an adjustment factor in the histogram |

`col` |
a vector of colors for the data points and for the factor loading labels |

`pos` |
If plotting labels, what position should they be in? 1=below, 2=left, 3 top, 4 right. If missing, then the assumption is that labels should be printed instead of data points. |

`arrow.len` |
the length of the arrow head |

`pch` |
The plotting character to use. pch=16 gives reasonable size dots. pch="." gives tiny points. If adding colors, use pch between 21 and 25. (see examples). |

`choose` |
Plot just the specified factors |

`cuts` |
Do not label cases with abs(factor scores) < cuts) (Actually, the distance of the x and y scores from 0) |

`cutl` |
Do not label variables with communalities in the two space < cutl |

`group` |
A vector of a grouping variable for the scores. Show a different color and symbol for each group. |

`smoother` |
If TRUE then do a smooth scatter plot (which shows the density rather than the data points). Only useful for large data sets. |

`vars` |
If TRUE, draw arrows for the variables, and plot the scores. If FALSE, then draw arrows for the scores and plot the variables. |

`...` |
more options for graphics |

Uses the generic biplot function to take the output of a factor analysis `fa`

, `fa.poly`

or principal components analysis `principal`

and plot the factor/component scores along with the factor/component loadings.

This is an extension of the generic biplot function to allow more control over plotting points in a two space and also to plot three or more factors (two at time).

This will work for objects produced by `fa`

, `fa.poly`

or `principal`

if they applied to the original data matrix. If however, one has a correlation matrix (e.g., based upon the output from `tetrachoric`

or `polychoric`

), and has done either `fa`

or `principal`

on the correlations, then obviously, we can not do a biplot.

However, both of those functions produce a weights matrix, which, in combination with the original data can be used to find the scores by using `factor.scores`

. Since biplot.psych is looking for two elements of the x object: x$loadings and x$scores, you can create the appropriate object to plot, or add it to the factor object See the third and fourth examples.

In order to just plot the loadings, use `fa.plot`

. Or, if we want to show the loadings as vectors, use pch = "".

William Revelle

`fa`

, `fa.poly`

, `principal`

, `fa.plot`

, `pairs.panels`

```
#the standard example
data(USArrests)
fa2 <- fa(USArrests,2,scores=TRUE)
biplot(fa2,labels=rownames(USArrests))
# plot the 3 factor solution
#data(bfi)
fa3 <- fa(psychTools::bfi[1:200,1:15],3,scores=TRUE)
biplot(fa3)
#just plot factors 1 and 3 from that solution
biplot(fa3,choose=c(1,3))
#
fa2 <- fa(psychTools::bfi[16:25],2) #factor analysis
fa2$scores <- fa2$scores[1:100,] #just take the first 100
#now plot with different colors and shapes for males and females
biplot(fa2,pch=c(24,21)[psychTools::bfi[1:100,"gender"]],
group =psychTools::bfi[1:100,"gender"],
main="Biplot of Openness and Neuroticism by gender")
## An example from the correlation matrix
r <- cor(psychTools::bfi[1:200,1:10], use="pairwise") #find the correlations
f2 <- fa(r,2)
#biplot(f2) #this throws an error (not run)
#f2 does not have scores, but we can find them
f2$scores <- factor.scores(psychTools::bfi[1:200,1:10],f2)
biplot(f2,main="biplot from correlation matrix and factor scores")
#or create a new object with the scores
#find the correlations for all subjects
r <- cor(psychTools::bfi[1:10], use="pairwise")
f2 <- fa(r,2)
x <- list()
#find the scores for just the first 200 subjects
x$scores <- factor.scores(psychTools::bfi[1:200,1:10],f2)
x$loadings <- f2$loadings
class(x) <- c('psych','fa')
biplot(x,main="biplot from correlation matrix combined with factor scores")
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.