fviz_dend(): lwd now controls ggplot branch thickness correctly and no
longer triggers a spurious linewidth legend. (#200, @erdeyl)fviz_nbclust() computes the k = 1 WSS baseline internally, so helpers
such as hcut() and hkmeans() no longer crash when used as FUNcluster.
eclust() handles hierarchical auto-selected k = 1 results and preserves
observation names; fviz_nbclust(method = "silhouette") omits the undefined
k = 1 point and keeps the optimum guide aligned with the displayed cluster
count. fviz_silhouette() errors cleanly when silhouette information is
unavailable (one-cluster eclust/hcut results). (#203, #209, @erdeyl)print() for HMFA group results lists only available components, dropping
the blank placeholder rows from the previous fixed-size layout. (#209,
@erdeyl)get_pca_ind() returns cos2 = 0 (not NaN) for rows at the PCA centroid;
fviz_pca_biplot(biplot.type = "auto") falls back to a safe scaling ratio
when variable coordinates are degenerate. (#209, @erdeyl)get_pca_var() strips the base R "loadings" S3 class from results for
princomp() objects, so coord, cor, cos2, and contrib are returned as
plain numeric matrices. Previously they inherited the "loadings" class, whose
print() method hid values with |x| < 0.1 and broke downstream manipulation.
(#212)get_dist(), eclust(), hcut(), and fviz_cluster() reject stand = TRUE
scaling that produces NA values with a package-level error instead of
leaking low-level clustering or plotting failures. (#209, @erdeyl)fviz_dist() and hcut(isdiss = TRUE) reject non-finite distance objects.
(#209, @erdeyl)hcut() and hkmeans() reject k > n_obs early with a clear message.
(#209, @erdeyl)fviz_eig() validates ncp, parallel.iter, and parallel.seed before
plotting. Integer-like numeric values are accepted; fractional, NA, or
out-of-range values are rejected. (#209, @erdeyl)facto_summarize() and the fviz_* axis helpers reject NA, zero,
negative, or fractional axis indices consistently. (#209, @erdeyl)get_mca_var() reports missing quantitative supplementary MCA variables
with a package-level error. (#209, @erdeyl)get_famd(), get_mfa(), facto_summarize(), fviz_famd_*(), and
fviz_mfa_*() now support supplementary qualitative variable categories
via quali.sup, including overlay, print, and category-name compatibility
paths. Regression coverage and examples expanded accordingly. (#202,
@erdeyl)fviz_dend() uses current igraph phylogenic helpers internally while
keeping phylo_layout = "layout.auto", "layout.gem", and "layout.mds"
as backward-compatible aliases. Modern names "layout_nicely",
"layout_with_gem", and "layout_with_mds" are also accepted. (#209,
@erdeyl)k = 1 paths, the stricter validation surface across
the clustering, MCA, and eigenvalue helpers, and the phylogenic layout
compatibility surface. (#209, @erdeyl)Major modernization release after 6 years. Resolves 30+ open issues and aligns with the current R/ggplot2/FactoMineR ecosystem.
get_clust_tendency(): Hopkins statistic now uses the corrected Wright (2022)
formula — values will differ from earlier versions. Default seed changed
from 123 to NULL.aes_string() with aes() + .data pronoun (rlang).
(#188, #190, #191, #192)guides(... = FALSE) with guides(... = "none").
(#141, #156, #174, #179, #183)size with linewidth for line-based geoms. (#178, #191)fviz_dend(): fixed rect_border error and "condition has length > 1" crash.
(#151, #163, #180)fviz_nbclust(): fixed class-comparison crash, cluster ordering for k > 9,
and silhouette error when k >= n. (#113, #131, #147, #148, #149, #171)facto_summarize(): axes parameter now correctly selects requested dimensions.
(#120, #143, #166, #167)fviz_ca_col(): fixed col.col.sup parameter name typo. (#150)fviz_pca_biplot(): fixed rescaling. (#129)get_clust_tendency(): fixed biased Hopkins sampling. (#133).onAttach(): startup message no longer falsely claims ggpubr/FactoMineR
are "loaded" (they are imported, not attached)..add_ind_groups(): no longer crashes with single-column habillage data frame.fviz_eig(): parallel analysis support (Horn 1965).fviz_pca_biplot(): scaling types (Gabriel 1971).get_clust_tendency(): stricter input validation, RNG state preservation,
options(factoextra.warn_hopkins = FALSE) to suppress one-time warning.hcut() and hkmeans(): improved input checks and error handling.
Redundant k >= n checks removed to preserve backward-compatible error
messages from cutree() / kmeans() (avoids breaking reverse dependencies
such as chooseGCM). (@erdeyl, #199)testthat test suite (113 tests).
(@erdeyl, #199)factominer_category_map() and map_factominer_legacy_names() helpers
for FactoMineR category-name compatibility.clean_lock_files() helper for removing stale 00LOCK-* directories.LazyDataCompression: xz for CRAN compliance.fviz_nbclust() checks now whether the argument FUNcluster is correctly specified (@robsalasco, #82).fviz_mclust_bic() (@hpsprecher, #84)outlier.pointsize and outlier.labelsize added in fviz_cluster() to customize outliers detected with DBSCAN (@choonghyunryu, #74)pointsize in the function fviz() canbe now a continuous variable.hkmeans() takes other distance metrics (@santsang, #52)get_clust_tendency() updated to return the correct value of hopkins statistics as explained at: https://www.datanovia.com/en/lessons/assessing-clustering-tendency/invisible works properly in the function fviz_pca_biplot()(@ginolhac, #26).fviz_dend() now works for an object of class diana (@qfazille, #30).fviz_cluster() supports HCPC results (@famuvie, #34).New argument mean.point in the function fviz(). logical value. If TRUE, group mean points are added to the plot.
Now, PCA correlation circles have fixed coordinates so they don't appear as ellipses (@scoavoux, #38.
New argument fill.ind and fill.var added in fviz_pca() (@ginolhac, #27 and @Confurious, #42).
New arguments geom.ind and geom.var in fviz_pca_xxx() and fviz_mca_xxx() functions to have more controls on the individuals/variables geometry in the functions fviz_pca_biplot() and fviz_mca_biplot() (@Confurious, #42).
New arguments geom.row and geom.col in fviz_ca_xxx() functions to have more controls on the individuals/variables geometry in the function fviz_ca_biplot() (@Confurious, #42).
New argument gradient.cols in fviz_pca_biplot()
New argument àxes in fviz_cluster() to specify the dimension to plot.
New argument circlesize in the function fviz() to change the size of the variable correlation circle size.
It's now possible to color individuals using a custom continuous variable (#29). This is done using the argument col.ind.
library(factoextra)
data(iris)
res.pca <- prcomp(iris[, -5], scale = TRUE)
# Visualize and color by a custom continuous variable
fviz_pca_ind(res.pca, col.ind = iris$Sepal.Length,
legend.title = "Sepal.Length")
library(FactoMineR)
library(factoextra)
.tbl2.1 <- matrix(c(395, 2456,1758,
147, 153, 916,
694, 327, 1347),byrow=T,3,3)
dimnames(.tbl2.1) <- list(地域=c("オスロ","中部地域","北部地域"),
犯罪=c("強盗", "詐欺","破壊") )
res.CA <- CA(.tbl2.1,graph=FALSE)
fviz_ca_biplot(res.CA,map="simbiplot",title="simbiplot",
font.family = "HiraKakuProN-W3")
New function fviz_mclust() for plotting model-based clustering using ggplot2.
New function fviz(): Generic function to create a scatter plot of multivariate analyse outputs, including PCA, CA and MCA, MFA, ...
New functions fviz_mfa_var() and fviz_hmfa_var() for plotting MFA and HMFA variables, respectively.
New function get_mfa_var(): Extract the results for variables (quantitatives, qualitatives and groups). Deprecated functions: get_mfa_var_quanti(), get_mfa_var_quali() and get_mfa_group().
New functions added for extracting and visualizing the results of FAMD (factor analysis of mixed data): get_famd_ind(), get_famd_var(), fviz_famd_ind() and fviz_famd_var().
Now fviz_dend() returns a ggplot. It can be used to plot circular dendrograms and phylogenic-like trees. Additionnally, it supports an object of class HCPC (from FactoMineR).
New arguments in fviz_cluster():
fviz_cluster(): to change the plot main title and axis labels.New argument pointshape in fviz_pca(). When you use habillage, point shapes change automatically by groups. To avoid this behaviour use for example pointshape = 19 in combination with habillage (@raynamharris, #15).
New argument repel in fviz_add().
New argument gradient.cols in fviz_*() functions.
Support for the ExPosition package added (epCA, epPCA, epMCA) (#23)
Check point added in the function fviz_nbclust() to make sure that x is an object of class data.frame or matrix (Jakub Nowosad, #15).
The following arguments are deprecated in fviz_cluster(): title, frame, frame.type, frame.level, frame.alpha. Now, use main, ellipse, ellipse.type, ellipse.level and ellipse.alpha instead.
Now, by default, the function fviz_cluster() doesn't show cluster mean points for an object of class PAM and CLARA, when the argument show.clust.cent is missing . This is because cluster centers are medoids in the case of PAM and CLARA but not means. However, user can force the function to display the mean points by using the argument show.clust.cent = TRUE.
The argument jitter is deprecated; use repel = TRUE instead, to avoid overlapping of labels.
New argument "sub" in fviz_dend() for adding a subtitle to the dendrogram. If NULL, the method used hierarchical clustering is shown. To remove the subtitle use sub = "".
fviz_cluster() can handle HCPC object obtained from MCA (Alejandro Juarez-Escario, #13)fviz_ca_biplot() reacts when repel = TRUE usedfacto_summarize(), now the contribution values computed for >=2 axes are in percentage (#22)fviz_ca() and fviz_mca() now work with the latest version of ade4 v1.7-5 (#24)New fviz_mfa function to plot MFA individuals, partial individuals, quantitive variables, categorical variables, groups relationship square and partial axes (@inventionate, #4).
New fviz_hmfa function to plot HMFA individuals, quantitive variables, categorical variables and groups relationship square (@inventionate, #4).
New get_mfa and get_hmfa function (@inventionate, #4).
fviz_ca, fviz_pca, fviz_mca, fviz_mfa and fviz_hmfa ggrepel support (@inventionate, #4).
Updated fviz_summarize, eigenvalue, fviz_contrib and fviz_cos2 functions, to compute FactoMineR MFA and HMFA results (@inventionate, #4).
fviz_cluster() added. This function can be used to visualize the outputs of clustering methods including: kmeans() [stats package]; pam(), clara(), fanny() [cluster package]; dbscan() [fpc package]; Mclust() [mclust package]; HCPC() [FactoMineR package]; hkmeans() [factoextra].
fviz_silhouette() added. Draws the result of cluster silhouette analyses computed using the function silhouette()[cluster package]
fviz_nbclust(): Dertemines and visualize the optimal number of clusters
fviz_gap_stat(): Visualize the gap statistic generated by the function clusGap() [in cluster package]
hcut(): Computes hierarchical clustering and cut the tree into k clusters.
hkmeans(): Hierarchical k-means clustering. Hybrid approach to avoid the initial random selection of cluster centers.
get_clust_tendency(): Assessing clustering tendency
fviz_dend(): Enhanced visualization of dendrogram
eclust(): Visual enhancement of clustering analysis
get_dist() and fviz_dist(): Enhanced Distance Matrix Computation and Visualization
eclust(): Visual enhancement of clustering analysis