plotArray_gg() gains border and border_linewidth arguments
(opt-in). When border = TRUE, a rectangular panel.border is
drawn around each of the original and clustered panels so that the
two panels are visually distinguishable when shown side-by-side.
Passing a character string to border sets the border colour
directly (e.g. border = "gray40"). The default is FALSE, so the
v1.1.0 unbordered look is preserved unless the user opts in.Clusterd* arguments and labels in plotArray_gg() to
the correct Clustered* spelling. Affects the function arguments
Clusterd -> Clustered, Clusterd_lines -> Clustered_lines,
Clusterd_lines_color -> Clustered_lines_color, the auto-generated
panel title "Clusterd Data" -> "Clustered Data", and the internal
clusterd_plot object. Vignettes (getting-started.Rmd,
getting-started-ja.Rmd, plot-gallery.Rmd) and the test file
test-plotArray_gg.R are updated accordingly. User code that passes the
old argument names by position is unaffected, but code that names them
(e.g. Clusterd_lines_color = "blue") must be updated.plotCRV_gg() and plotRRV_gg(). The
long-form plot_data was built with as.vector(t(M)) while the
accompanying field and class/rank index vectors assumed
as.vector(M) (column-major) ordering. As a result, the value at each
(field, class) or (field, rank) point was scrambled and lines no longer
matched the underlying FRP matrix or expected scores. Affects both
binary and polytomous biclustering output. Output now matches the
base-R exametrika::plot(., type = "CRV"/"RRV") numerically.test-Biclustering-plots.R that verify
plot_data$value matches FRP[field, class] (binary) and the
expected-score matrix (polytomous) at every (field, class/rank) cell.plotDistractor_gg() for Distractor Analysis visualization
(exametrika v1.11.0). Creates stacked bar charts showing response category
proportions by rank/class, with the correct answer highlighted. Supports
both LRA (rated) and Biclustering (rated) DistractorAnalysis results.fixture_DA_lra and fixture_DA_biclust test fixtures and 9 test
cases in test-distractor-plots.R.sec_axis(trans = ...) with sec_axis(transform = ...)
in plotTRP_gg, plotLCD_gg, plotLRD_gg (ggplot2 >= 3.5.0).\donttest{} to plotScoreFreq_gg example to avoid CRAN time limit
NOTE on Windows.ratedBiclustering class from exametrika v1.11.0 (Biclustering
with dataType = "rated").
plotFRP_gg, plotTRP_gg, plotLCD_gg, plotLRD_gg, plotCMP_gg,
plotRMP_gg (IRPtoCMPRMP.R), plotFCRP_gg (PolyBiclustering.R),
plotArray_gg (arraytoLDPSR.R), plotScoreField_gg (ScoreField.R),
plotCRV_gg, plotRRV_gg (Biclustering.R).@param data and @details documentation to mention
ratedBiclustering.fixture_ratedBiclust test fixture in helper-setup.R.ratedBiclustering in test-PolyBiclustering-plots.R
covering plotFCRP_gg, plotScoreField_gg, plotFRP_gg, plotTRP_gg,
plotRRV_gg, plotCRV_gg, plotArray_gg, plotRMP_gg, plotLRD_gg.\dontrun{} with \donttest{} in examples per CRAN review.plotGraph_gg(). This completes the DAG visualization series (BNM → LDLRA → LDB → BINET)..binet_expand_graph() helper to transform BINET's class-only graph (all_g) into an expanded graph with Field intermediate nodes for TDE-style visualization..dag_build_plot() with optional node_size_map and label_size_map parameters for variable node/label sizes by type (backward-compatible: NULL defaults preserve existing behavior)..dag_node_colors() to support multiple node types with custom colors (positional or named vectors)..dag_build_plot() show.legend from hardcoded FALSE to parameter-driven, enabling proper legend display for BINET's multi-type nodes.node_size_val and label_size_val to globalVariables in zzz.R.test-DAG-plots.R: basic output, title/colors/legend/direction common options, dual node types, and node size differentiation.plotGraph_gg(). Field nodes are rendered as green diamonds (shape=23), distinct from Item nodes (purple circles, shape=21). Structure mirrors LDLRA: one plot per rank with isolated node removal..dag_build_plot() to support multiple node types via scale_shape_manual() + scale_fill_manual(), preparing for BINET's mixed-type graphs.helper-setup.R using exametrika::LDB() with J35S515.test-DAG-plots.R: basic output, title/colors/legend/direction common options, node appearance, and diamond shape verification.develop/check_ldb_visual.R for visual comparison of BNM/LDLRA/LDB rendering.@param colors roxygen documentation: update "future models (LDB/BINET)" to reflect LDB as implemented.data$Nrank directly instead of .first_non_null(data$Nrank, data$Nclass) fallback (LDB always provides Nrank)..first_non_null() definition from plotGraph_gg.R (already defined in palette.R).plotGraph_gg(): extract internal helper functions (.dag_node_number(), .dag_scale_factors(), .dag_item_color(), .dag_compute_layout(), .dag_build_plot()) to eliminate code duplication between BNM and LDLRA implementations.tests/testthat/helper-setup.R using J12S5000 with a simple 3-rank DAG.tests/testthat/test-DAG-plots.R: basic output, title/colors/legend/direction common options, and node appearance parameters..dag_build_plot(): add dynamic scale_x/y_continuous(expand = expansion(mult = ...)) so nodes are never cut off at plot edges. Padding is proportional to node size (clamped between 0.20 and 0.45).plotTRP_gg() to support nominalBiclustering and ordinalBiclustering model types. Previously these models were rejected with "Invalid input" error due to class validation using exact all(class(data) %in% ...) matching. Replaced with data$msg-based xlabel determination, consistent with plotFRP_gg() and other functions.plotTRP_gg() roxygen2 documentation to list all supported model types including nominalBiclustering, ordinalBiclustering, and LDLRA.plotTRP_gg() with ordinalBiclustering and nominalBiclustering fixtures.|>) and lambda syntax (\(x)) are used in some dependencies. R >= 4.1.0 is the minimum version that supports these features.oldrel-1 (R 4.4.x) from GitHub Actions CI matrix. The ggrepel package now requires R >= 4.5.0 on CRAN, causing dependency resolution failures on older R versions. CI now tests release and devel only.Reference field from DESCRIPTION. Reference information is now included in the Description field.gridExtra from Depends to Imports (CRAN recommends minimizing Depends).R (>= 3.5.0) to Depends for minimum R version requirement..Rbuildignore pattern for CLAUDE.md to be case-insensitive (^[Cc][Ll][Aa][Uu][Dd][Ee]\.md$).^cran-comments\.md$ to .Rbuildignore.cran-comments.md for initial CRAN submission.LICENSE file (YEAR/COPYRIGHT HOLDER format) for CRAN compliance. DESCRIPTION specifies License: MIT + file LICENSE, which requires a LICENSE file (not just LICENSE.md).J35S500 examples in \dontrun{} to avoid R CMD check failures when exametrika < 1.9.0 is installed. J35S500 dataset is only available in exametrika >= 1.9.0 (not yet on CRAN). Affected functions: plotFCBR_gg(), plotFCRP_gg(), plotScoreField_gg(), plotFRP_gg(), plotCRV_gg(), plotRRV_gg(). TODO: revert after exametrika v1.9.0 is released on CRAN.LazyData: true from DESCRIPTION (package has no data directory).VignetteBuilder: knitr and knitr/rmarkdown from Suggests (no vignettes after migration to pkgdown articles).R/zzz.R via utils::globalVariables(). Covers all ggplot2 aes() and tidyr NSE variables across all plot functions (30+ variables). Previously only value was declared.@importFrom for missing function imports: stats::ave, stats::median, stats::setNames, utils::tail, ggplot2::geom_segment, ggplot2::sec_axis, ggplot2::scale_fill_gradientn, ggplot2::scale_x_reverse, tidyr::all_of. Resolves all "no visible global function definition" NOTEs.github::kosugitti/exametrika to R-CMD-check.yaml and test-coverage.yaml extra-packages. CRAN version (v1.8.1) lacks v1.9.0 datasets; examples with @examplesIf + \dontrun{} do not correctly suppress execution due to withAutoprint interaction._pkgdown.yml: use '"articles/name"' syntax for article references in contents. pkgdown evaluates contents entries as R expressions, so bare plot-gallery was parsed as plot - gallery (subtraction). Additionally, pkgdown prefixes article names with articles/ for files in vignettes/articles/.getting-started.Rmd and getting-started-ja.Rmd from vignettes/ to vignettes/articles/ as pkgdown-only articles. Remove vignette YAML metadata (\VignetteIndexEntry, \VignetteEngine, \VignetteEncoding) and output: rmarkdown::html_vignette. This resolves R CMD check vignette build errors caused by exametrika dependency during check.^vignettes/articles$ to .Rbuildignore to exclude pkgdown-only articles from package build.test-coverage.yaml: upgrade codecov/codecov-action from v4 to v5, add print(cov) for log output, add testthat output display and failure artifact upload steps, update parameter names for v5 compatibility (file to files, plugin to plugins). Set fail_ci_if_error: false for codecov upload to avoid CI failure when CODECOV_TOKEN is not configured.pkgdown.yaml: install exametrika from GitHub (github::kosugitti/exametrika) to ensure v1.9.0 datasets (e.g., J35S500) are available for article rendering.vignettes/articles/plot-gallery.Rmd) as a pkgdown-only article showcasing all 27 visualization functions with live rendered examples. The gallery is organized into 7 sections: IRT Models, GRM, Latent Class/Rank Analysis, Biclustering (binary/ordinal/nominal), LRAordinal/LRArated, Network Models (DAG), and Common Options Demo._pkgdown.yml navbar menu (displayed at the top of the Articles dropdown) and articles section.plotFRP_gg(result_lca) and plotFRP_gg(result_lra) calls from both English and Japanese getting-started vignettes. plotFRP_gg() requires Biclustering-family models; LCA/LRA do not produce FRP output (exametrika valid_types declaration is incorrect).OrdinalData dataset with J35S500 in ordinal Biclustering example.color = to colors = in plotTIC_gg() customization example (parameter name mismatch).rankdir = to direction = and remove non-existent node_color/edge_color parameters from plotGraph_gg() customization example.plotGraph_gg() examples to eval = FALSE with "coming soon" notes, as DAG visualization currently supports BNM only.plotFRP_gg() usage in vignettes: the function returns a single ggplot object, not a list. Removed incorrect [[1]] indexing and combinePlots_gg() calls.eval = FALSE in both vignettes. BNM requires explicit graph input; LDLRA/LDB/BINET are computationally expensive and have unresolved API issues with current exametrika version.devtools::install_github() chunks to eval = FALSE in both vignettes. devtools is not available during R CMD check.OrdinalData dataset with J35S500 in plotFCBR_gg() and plotFRP_gg() roxygen examples.plotFCBR_gg() example: fields = 1:6 exceeded nfld = 5, and colors had 4 values for 5-category data. Changed to fields = 1:5 and added 5th color.library(exametrika) to plotFCRP_gg() and plotScoreField_gg() roxygen examples.plotFieldPIRP_gg() and plotLDPSR_gg() examples from @examplesIf to @examples with \dontrun{}. LDB and BINET require explicit graph structure input that cannot be created in simple examples.eval = FALSE to eval = requireNamespace("exametrika", quietly = TRUE). Vignette code chunks now execute automatically when exametrika is installed, producing live output on pkgdown site, while still being skipped gracefully when unavailable.nomBiclust (nominalBiclustering) column to Function-Model Compatibility Matrix in both English and Japanese vignettes.plotFCRP_gg (v1.9.0), plotScoreField_gg (v1.9.0), plotLDPSR_gg (v0.0.32).ordBiclust marks in the compatibility matrix for plotFRP_gg, plotLRD_gg, plotCRV_gg, and plotRRV_gg. These functions natively accept ordinalBiclustering in their validation code but were not marked in the matrix.LDLRA mark for plotTRP_gg in the compatibility matrix. The function accepts LDLRA in its validation code but was not marked.@examples + \dontrun{} to @examplesIf requireNamespace("exametrika", quietly = TRUE) for all 28 plot functions. Examples now run automatically when exametrika is installed (improving pkgdown reference pages with live output) while still being skipped gracefully when exametrika is unavailable.@examples since they have no exametrika dependency.plotLDPSR_gg to _pkgdown.yml reference section under "DAG & Network Model Plots"._pkgdown.yml to better reflect the inclusion of BINET-specific profile plots.figures section to _pkgdown.yml with explicit dimensions (fig.width=7, fig.height=5, dpi=96, fig.retina=2) for consistent example plot rendering on GitHub Pages.plotLDPSR_gg() for Local Dependence Passing Student Rate (LDPSR) visualization (BINET only). LDPSR shows item-level correct response rate profiles comparing parent and child classes at each DAG edge, visualizing how students improve when transitioning between latent classes via a specific field.plotLDPSR_gg() supports common plot options (title, colors, linetype, show_legend, legend_position).combinePlots_gg().helper-setup.R using J35S515 with 3 classes, 5 fields, and a simple chain DAG structure.test-LDPSR-plots.R with comprehensive tests: basic functionality, common options, input validation, model type rejection, and combinePlots_gg integration.plotLDPSR_gg validation entry to test-validation.R.plotICBR_gg(), plotICRP_gg(), plotFCRP_gg(), and plotFRP_gg(): legend.position was unconditionally applied in the initial theme() call, then show_legend = FALSE attempted to override it in a separate theme() layer. Replaced with a single conditional block for consistent behavior.plotRMP_gg() to support LRAordinal and LRArated model types. Previously these models were rejected with "Invalid input" error despite having valid Students/Membership data.plotCRV_gg() with stat parameter ("mean", "median", "mode"), matching the existing plotRRV_gg() functionality. For binary data, backward compatibility is fully maintained.show_labels parameter to plotCRV_gg() for displaying class labels using ggrepel.R-CMD-check.yaml for multi-platform R CMD check (macOS, Windows, Ubuntu with R release/devel/oldrel-1).test-coverage.yaml for covr test coverage with optional Codecov upload.helper-setup.R: BNM requires a DAG graph argument (g). Added igraph DAG creation for J5S10 dataset. This resolves 4 previously skipped DAG tests.plotRMP_gg() with LRAordinal/LRArated models.plotCRV_gg() tests: replace error-expectation test with polytomous support tests (stat, show_labels).plot.exametrika valid_types declares FRP as valid for LCA and LRA, but neither LCA() nor LRA() actually produce a $FRP field in their output. The plotFRP_gg() correctly rejects these models. Added annotation (*1) to model compatibility tables documenting this exametrika-side inconsistency.Comprehensive testthat test suite for all 26 exported plot functions.
helper-setup.R with shared test fixtures (IRT 2PL/3PL, GRM, LCA, LRA, Biclustering binary/ordinal/nominal, LRAordinal, LRArated, BNM). Fixtures computed once and shared across all test files.test-IRT-plots.R: plotICC_gg, plotTRF_gg, plotICC_overlay_ggtest-IIC-TIC-plots.R: plotIIC_gg, plotTIC_gg, plotIIC_overlay_gg (IRT + GRM)test-GRM-plots.R: plotICRF_ggtest-LCA-LRA-plots.R: plotIRP_gg, plotTRP_gg, plotLCD_gg, plotLRD_gg, plotCMP_gg, plotRMP_ggtest-Biclustering-plots.R: plotFRP_gg, plotCRV_gg, plotRRV_gg (binary + polytomous)test-PolyBiclustering-plots.R: plotFCRP_gg, plotFCBR_gg, plotScoreField_ggtest-LRAordinal-plots.R: plotScoreFreq_gg, plotScoreRank_gg, plotICRP_gg, plotICBR_ggtest-DAG-plots.R: plotGraph_gg (BNM)test-utility.R: combinePlots_ggtest-validation.R: Cross-cutting input validation for all 24+ plot functionsAdd common plot options (title, colors, linetype, show_legend, legend_position) to 11 functions for API consistency.
plotICC_gg(): title (logical/character), colors, linetype, show_legend, legend_position. Also add items parameter for selecting which items to plot.plotTRF_gg(): title (logical/character), colors, linetype, show_legend, legend_position.plotIRP_gg(): title (logical/character), colors, linetype (default: "dashed"), show_legend, legend_position.plotCMP_gg(): title (logical/character), colors, linetype (default: "dashed"), show_legend, legend_position.plotRMP_gg(): title (logical/character), colors, linetype (default: "dashed"), show_legend, legend_position.plotFieldPIRP_gg(): title (logical/character), colors (per-field), linetype, show_legend, legend_position.color to colors in plotTIC_gg() for API consistency. Add show_legend and legend_position parameters.colors, linetype, show_legend, legend_position to plotTRP_gg(). Extend title to support character strings. colors[1]=bar fill, colors[2]=line/point color.colors, linetype, show_legend, legend_position to plotLCD_gg(). Extend title to support character strings. colors[1]=bar fill, colors[2]=line/point color.colors, linetype, show_legend, legend_position to plotLRD_gg(). Extend title to support character strings. colors[1]=bar fill, colors[2]=line/point color.title (logical/character), colors (node fill), show_legend, legend_position to plotGraph_gg(). Note: linetype is not applicable to DAG edge arrows.plotCMP_gg() and plotRMP_gg() to access Students columns by name (Membership *) instead of index position. Prevents column-shift bugs when exametrika adds columns (e.g., Estimate).plotCMP_gg() and plotRMP_gg() $Nclass reference to fallback chain: n_class -> Nclass -> n_rank -> Nrank. Now accepts LRA/Biclustering objects without errors.$Nclass/$Nfield references in plotArray_gg() and plotFieldPIRP_gg() to new naming convention (n_class/n_field/n_rank) with fallback to deprecated names (Nclass/Nfield/Nrank)..first_non_null() for safe fallback chains across naming conventions.plotTRP_gg(), plotLCD_gg(), plotLRD_gg() to use LCD/LRD fallback chains. LRA and LDLRA models (which have $LRD but not $LCD) now work correctly with all three functions.plotTRP_gg() (previously missing from valid model types).plotArray_gg() single-panel return value: when only Original = FALSE or Clusterd = FALSE, the function now correctly returns a list with the single plot at index 1 (previously stored at index 2 when only Clusterd was TRUE, causing plot[[1]] to be NULL).plotLCD_gg(), plotLRD_gg(), plotCMP_gg(), and plotRMP_gg() to support polytomous biclustering models.ordinalBiclustering and nominalBiclustering classes in LCD, LRD, CMP, and RMP plots.all(class(data) %in% c(...)) to any(class(data) %in% c(...)) for better compatibility.inherits(data, "exametrika") check for more robust input validation.plotRRV_gg() and plotCRV_gg() for ordinal/nominal Biclustering.stat parameter to plotRRV_gg() and plotCRV_gg() for polytomous data: "mean" (default), "median", or "mode".show_labels parameter to plotRRV_gg() and plotCRV_gg() (default: FALSE) for displaying rank/class labels using ggrepel.plotFCRP_gg() for Field Category Response Profile (FCRP) visualization (exametrika v1.9.0 feature).plotFRP_gg() (Field Reference Profile).stat parameter for polytomous data: "mean" (weighted average), "median", "mode".plotFRP_gg().stat method.plotScoreField_gg() for Score-Field heatmap visualization (exametrika v1.9.0 feature).plotScoreField_gg() displays expected scores for each field across latent classes/ranks in polytomous biclustering models (nominalBiclustering, ordinalBiclustering).show_values parameter to toggle display of score values on heatmap cells.text_size parameter to control size of value labels.plotFCBR_gg() for Field Cumulative Boundary Reference (FCBR) visualization (ordinalBiclustering).plotFCBR_gg().plotScoreRank_gg() for Score-Rank heatmap visualization (LRAordinal, LRArated).plotScoreRank_gg().plotICBR_gg() for Item Category Boundary Response (ICBR) visualization (LRAordinal).plotICRP_gg() for Item Category Reference Profile (ICRP) visualization (LRAordinal, LRArated).plotIIC_overlay_gg() for overlaying all Item Information Curves (IIC) on a single plot (IRT/GRM).plotIIC_overlay_gg() supports both IRT and GRM models.plotIIC_overlay_gg() supports common plot options (title, colors, linetype, show_legend, legend_position).plot(IRT_result, type = "IIF", overlay = TRUE) in exametrika, but returns a ggplot2 object.plotICC_overlay_gg() for overlaying all Item Characteristic Curves (ICC) on a single plot (IRT).plotICC_overlay_gg() supports common plot options (title, colors, linetype, show_legend, legend_position).plot(IRT_result, type = "IRF", overlay = TRUE) in exametrika, but returns a ggplot2 object.plotScoreFreq_gg() for Score Frequency Distribution (LRAordinal, LRArated).plotArray_gg() for ordinal/nominal Biclustering.plotArray_gg().Clusterd_lines_color parameter to plotArray_gg() for customizing boundary line colors (default: red for binary data, white for multi-valued data).plotArray_gg() now automatically detects the number of categories and uses appropriate color palettes.plotArray_gg() to align exactly with class/field boundaries.plotArray_gg() to match exametrika's original implementation. Now uses order(ClassEstimated, decreasing = FALSE) with reversed rown for proper visual alignment (higher class numbers at bottom).plotIIC_gg() for Item Information Curve (IRT and GRM).plotTIC_gg() for Test Information Curve (IRT and GRM).ItemInformationFunc_GRM() for computing GRM item information.plotIIC_gg() and plotTIC_gg().plotCRV_gg() for Class Reference Vector (CRV) visualization (Biclustering).plotRRV_gg() for Rank Reference Vector (RRV) visualization (Biclustering).plotICRF_gg() for Item Category Response Function (GRM) visualization..gg_exametrika_palette() as package-wide default color palette (ColorBrewer Dark2).plotICRF_gg().plotTRF_gg() for Test Response Function (TRF) visualization in IRT models.plotGraph_gg() for DAG visualization using ggraph.styler::style_pkg() for consistent code formatting.plotArray_gg() for array plot (Biclustering, IRM, LDB, BINET).plotFieldPIRP_gg() for Field PIRP plot (LDB).plotTRP_gg() for Test Reference Profile (LCA, LRA, Biclustering, IRM, LDLRA, LDB, BINET).plotLCD_gg() for Latent Class Distribution (LCA, Biclustering).plotLRD_gg() for Latent Rank Distribution (LRA, Biclustering, LDLRA, LDB, BINET).plotCMP_gg() for Class Membership Profile (LCA, Biclustering, BINET).plotRMP_gg() for Rank Membership Profile (LRA, Biclustering, LDLRA, LDB, BINET, LRAordinal, LRArated).plotIRP_gg() for Item Reference Profile (LCA, LRA, LDLRA).plotFRP_gg() for Field Reference Profile (LCA, LRA, Biclustering, IRM, LDB, BINET).plotICC_gg() for Item Characteristic Curve (IRT: 2PL, 3PL, 4PL).plotIIC_gg() for Item Information Curve (IRT: 2PL, 3PL, 4PL).plotTIC_gg() for Test Information Curve (IRT: 2PL, 3PL, 4PL).LogisticModel() for four-parameter logistic model computation.ItemInformationFunc() for item information function computation.combinePlots_gg() utility for arranging multiple plots in a grid.