ggcorrplot 0.2.0
New features
-
New argument
sig.starsto append significance stars (***,**,*) to
the coefficient labels whenlab = TRUEand ap.matis supplied, e.g.
"-0.85**". Defaults toFALSE(#26, #41, #50; inspired by the ggcorrplot2
package by @caijun). -
New argument
circle.scaleto scale the circle sizes whenmethod = "circle",
useful when the output device size makes the default circles too small or too
large. Defaults to1(contributed by @jdeut, #8). -
New argument
nsmallto set a minimum number of decimals in the coefficient
labels (e.g.nsmall = 2keeps trailing zeros such as 0.70). Defaults to0,
the current behavior (#43; label-formatting idiom suggested by @PawelKulawiak in #15). -
New argument
legend.limitto control the limits of the fill color scale.
Defaults toc(-1, 1); setlegend.limit = NULLto use the data range, e.g.
to display a covariance matrix (#54). -
The
colorsargument now accepts a vector of any length>= 2, not only 3.
A length-3 vector still maps to low/mid/high viascale_fill_gradient2(default
output unchanged); any other length is spread across the scale with
scale_fill_gradientn, so an n-color palette such as
RColorBrewer::brewer.pal(11, "RdBu")can be passed straight tocolors =
without adding a second fill scale (and without the "Scale for fill is already
present" message) (#52). Requested by @glocke-senda. -
New argument
coord.fixed(defaultTRUE) to optionally drop the fixed 1:1
aspect ratio. Setcoord.fixed = FALSEto let the cells fill the plotting
area, which can look better with many long variable names (#40). -
New argument
lab_fontfaceto set the font face ("plain","bold",
"italic","bold.italic") of the correlation coefficient labels. Defaults
to"plain", the current behavior (#15). -
New argument
leading.zeroto drop the leading zero of the coefficient labels
(e.g..23,-.67instead of0.23,-0.67), common in correlation tables.
Defaults toTRUE(leading zero kept, current behavior); set
leading.zero = FALSEto remove it (#15; idiom from @PawelKulawiak's comment). -
New arguments
tl.vjustandtl.hjustto control the vertical and horizontal
justification of the x-axis text labels. Both default to1, the current
behavior (#56). -
New argument
useincor_pmat()to align the p-value matrix'sNApattern
with a correlation matrix. The default"pairwise.complete.obs"keeps the
current behavior;use = "everything"sets a pair toNAas soon as either
variable has a missing value, matchingcor()'s default so the two matrices
line up (@elizabethwe, #51).
Minor changes
-
Replaced the deprecated
ggplot2::aes_string()with tidy-evaluationaes()
internally, silencing the ggplot2 deprecation warnings on recentggplot2
versions. Default output is unchanged (#57, #58, #59, #60, #61). Based on the
contribution by @jeherschberger (#62). -
Added a
CITATIONfile socitation("ggcorrplot")returns a proper
reference (#42, #47). -
Added an internal structural regression test suite that asserts on the built
plot (layer composition, built data, fill-scale semantics, coordinate system,
ordering and significance handling), so the plot's structure is checked on CI
and CRAN and not only by the local visual snapshots (#81).
Bug fixes
-
cor_pmat()no longer aborts when a pair of variables has fewer than three
overlapping non-missing observations to correlate (e.g. two variables that
never co-occur). Such a pair now returnsNAfor that cell instead of erroring
out for the whole matrix; pairs that can be tested are computed as before
(@elizabethwe, #51). -
A non-square (m x n) correlation matrix now gives a clear error when combined
withhc.order = TRUEortype = "lower"/"upper"(which require a square
matrix), instead of silently producing an incorrect plot.type = "full"
still works for non-square matrices (#5, #10). -
The significance markers no longer error or misalign when the correlation
matrix and the p-value matrix have different missing-value patterns. P-values
are now matched to each cell by name instead of by row position. -
When
hc.order = TRUE, the hierarchical clustering is now computed on the
unrounded correlation matrix. Previously the matrix was rounded todigits
before clustering, so the internal rounding could introduce ties that changed
the ordering (@buddha2490, #14). -
The
tl.colargument (color of the axis text labels) is now applied; it was
previously ignored. It defaults toNULL, inheriting the color from the theme,
so the default appearance is unchanged (@LafontRapnouilTristan, #44, #45). -
The significance test is no longer affected by
hc.order. Previously, when
hc.order = TRUE, the p-value matrix was rounded todigitsbefore being
compared withsig.level, so a p-value just above the threshold (e.g. 0.054)
could be shown as significant while the same data withhc.order = FALSE
showed it as non-significant (@worden-lee, #25). -
The significance markers now stay aligned with the tiles when the matrix has
numeric-looking names. The p-value matrix is now reshaped with the same
as.issetting as the correlation matrix, soas.is = TRUEno longer places
the markers off-plot (@cabaez, #37).