')
ui_shot("02-node-moved.png",
"Figure 3a. Before: the numbered pointer identifies the label to grab. Drag the number itself, not its path.",
crop = c(435, 315, 230, 290), marks = list(c(1, 452, 422, 507, 468)),
drag = c(532, 451, 550, 432))
ui_shot("03-coefficient-moved.png",
"Figure 3b. After: 0.42 is higher on the page. The factor and all three indicators have stayed in place.",
crop = c(435, 315, 230, 290), marks = list(c(1, 617, 412, 566, 416)))
cat('
')
## ----display-name-controls, echo=FALSE, eval=TRUE, results='asis'-------------
ui_shot("04-display-label.png",
"Figure 4. Select the node, type its display name in Selected label (1), then click Apply label (2). The diagram now says Visual ability.",
crop = c(20, 125, 665, 320),
marks = list(c(1, 310, 311, 282, 311), c(2, 150, 361, 125, 361)))
## ----export-preview-interface, echo=FALSE, eval=TRUE, results='asis'----------
ui_shot("05-export-preview.png",
"Figure 5. Choose Export preview (1), then Refresh export preview (2). In this R-rendered image, the renamed factor is higher (3), and the manually positioned 0.42 remains near its path (4).",
crop = c(325, 60, 940, 565),
marks = list(c(1, 552, 84, 516, 84), c(2, 561, 151, 502, 151),
c(3, 572, 236, 537, 236), c(4, 588, 328, 535, 328)))
## ----save-controls-closeup, echo=FALSE, eval=TRUE, results='asis'-------------
ui_shot("06-save-and-restore.png",
"Figure 6. The bottom of the sidebar: image downloads (1), Figure R (2), State JSON (3), and Browse under Load state JSON (4).",
crop = c(15, 345, 310, 348), max_width = 410,
marks = list(c(1, 264, 394, 214, 394), c(2, 264, 474, 204, 474),
c(3, 214, 514, 139, 514), c(4, 216, 626, 101, 591)))
## ----reproduce-edited-figure--------------------------------------------------
# # Run in the directory where you want the output figures.
# source("three-factor-cfa-figure.R")
## ----alignment-controls, echo=FALSE, eval=TRUE, results='asis'----------------
ui_shot("07-align-selection.png",
"Figure 7. The three indicators are selected (1). Align row (2) puts selected, unlocked nodes on one horizontal line; Distribute X (3) spaces them evenly. These indicators already form a row, so Align row makes no visible change here.",
crop = c(15, 45, 1250, 575),
marks = list(c(1, 680, 554, 652, 554), c(2, 95, 318, 95, 344),
c(3, 248, 414, 155, 400)))