Produces a Graphviz DOT script visualizing the structure of an NMF model (\(Y \approx X C A\)) or its simplified forms.

Supported visualization types:

  • "YX" — Standard NMF view: latent factors \(X\) map to observations \(Y\).

  • "YA" — Direct regression view: covariates \(A\) map directly to \(Y\) using the combined coefficient matrix \(X C\).

  • "YXA" — Full tri-factorization: \(A \rightarrow C \rightarrow X \rightarrow Y\).

Edge widths are scaled by coefficient magnitude, and nodes with no edges above the threshold are omitted from the visualization.

nmfkc.DOT(
  x,
  type = c("YX", "YA", "YXA"),
  threshold = 0.01,
  rankdir = "LR",
  fill = TRUE,
  weight_scale = 5,
  weight_scale_ax = weight_scale,
  weight_scale_xy = weight_scale,
  weight_scale_ay = weight_scale,
  Y.label = NULL,
  X.label = NULL,
  A.label = NULL,
  Y.title = "Observation (Y)",
  X.title = "Basis (X)",
  A.title = "Covariates (A)"
)

Arguments

x

The return value from nmfkc, containing matrices X, B, and optionally C.

type

Character string specifying the visualization style: one of "YX", "YA", "YXA".

threshold

Minimum coefficient magnitude to display an edge.

rankdir

Graphviz rank direction (e.g., "LR", "TB").

fill

Logical; whether nodes should be drawn with filled shapes.

weight_scale

Base scaling factor for edge widths.

weight_scale_ax

Scaling factor for edges \(A \rightarrow X\) (type "YXA").

weight_scale_xy

Scaling factor for edges \(X \rightarrow Y\).

weight_scale_ay

Scaling factor for edges \(A \rightarrow Y\) (type "YA").

Y.label

Optional character vector for labels of Y nodes.

X.label

Optional character vector for labels of X (latent factor) nodes.

A.label

Optional character vector for labels of A (covariate) nodes.

Y.title

Cluster title for Y nodes.

X.title

Cluster title for X nodes.

A.title

Cluster title for A nodes.

Value

A character string representing a Graphviz DOT script.

See also

nmfkc