\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.