Skip to content

Releases

HVTI Recipes 3.1.10

Choose a tag to compare

@ehrlinger ehrlinger released this 06 Nov 14:53
c8c8975

A patch edition: the whole book re-rendered against the 2026-11-06 family releases, and new links to the template gallery and the Quick start.

Read it: https://ehrlinger.github.io/hvtiGraphics/

What moved

  • Links. Every page's footer links the Quick start and the template gallery, and the closing chapter says what each is for (#111). The gallery links back.
  • Output. No recipe's output changes. The "What this build used" table records the new versions and commits; the rest of the cache diff is regenerated table CSS ids, a few bytes in three postagestamp figures, and the usual bytes in every PDF figure.

Rendered against

hvtiR 1.3.7, hvtiRutilities 1.5.21, TemporalHazard 1.3.0 (main), hvtiRtables 1.0.12, hvtiPlotR 2.8.21, ggRandomForests 4.0.0, randomForestSRC 3.10.0. HTML caches come from deep render 42223455097, except hv_tables, packages and temporal_diagnostics. The PDF caches come from a forced local rebuild against the same commits. See #112.

HVTI Recipes 3.1.9

Choose a tag to compare

@ehrlinger ehrlinger released this 03 Nov 13:50
c5d78ac

A patch edition: the whole book re-rendered against the 2026-11-03 family releases and randomForestSRC 3.10.0.

Read it: https://ehrlinger.github.io/hvtiGraphics/

What moved

  • Manuscript tables. A count cell now reads 145(73), without the space, as hvtiRtables 1.0.12 writes it. The two 17 (22%) cells left in hv_tables belong to the chapter's plain gtsummary comparison table, on purpose.
  • Forest chapters. Under randomForestSRC 3.10.0 the rf_*, varpro and varpro_partial fits move. In varpro the housing-data selection gains Bsmt.QualGd and no longer keeps PID, the parcel identifier. No prose quotes a number that changed.
  • Temporal hazard chapters. Last-digit changes in the optimizer output and the time-0 hazard, from TemporalHazard 1.2.18.
  • Typeface. The HTML figures in balance, histograms, scatter and postagestamp had last been drawn on a Mac. They now come from the CI deep render, in the book's usual typeface. Their text and data are unchanged.

Rendered against

hvtiR 1.3.6, hvtiRtemplates 1.5.5, hvtiRutilities 1.5.19, TemporalHazard 1.2.18, hvtiRtables 1.0.12, hvtiPlotR 2.8.21, randomForestSRC 3.10.0. HTML caches come from deep render 41637670390, except hv_tables, packages and temporal_diagnostics. The PDF caches come from a forced local rebuild against the same versions. See #108.

HVTI Recipes 3.1.8

Choose a tag to compare

@ehrlinger ehrlinger released this 26 Oct 13:13
184c98b

A patch edition: three chapters re-rendered against the 2026-10-25 family releases, and one finding about the new role colors.

Read it: https://ehrlinger.github.io/hvtiGraphics/

The role colors change nothing here

hvtiPlotR 2.8.18 moved the event and censored colors to Paul Tol's red #CC3311 and blue #0077BB. No figure in the book uses them: they apply only through scale_fill_hv(), scale_color_hv() and hv_role_palette(), which no chapter calls. After a clean rebuild, 157 of 168 figure PDFs are pixel-identical to 3.1.7. The "vermillion" in the captions is hv_palette(), which did not change.

3.1.8

  • Manuscript tables follow the house notation (#105). Under hvtiRtables 1.0.8 and later, medians print in brackets, 46 [30, 62], and p-values drop the leading zero, .5. The summary recipe and its gt comparison now ask for the bracket form, so the table agrees with the default footnote, "Median [15th, 85th percentiles]". The printed hv_tbl_summary() result carries a Variable column for checking the report view against the data; hv_man_table_jtcvs() and hv_man_table_save() drop it, so it never reaches a manuscript.
  • The scatter recipe explains the short y-axis title (#105). On a continuous panel hv_eda() now uses y_label as the plot title and puts only the trailing units on the axis, so "Ejection Fraction (%)" titles the panel and the axis reads %. Add labs(y = ...) when the axis needs the full label.
  • The slide-fitting printout in Presentations reflects hvtiPlotR 2.8.16's 4.11 in panel box. The figures are unchanged.

Not yet refreshed

The two varPro chapters keep their 3.1.7 figures. ggRandomForests main has moved past the commit they were drawn with and redraws them noticeably; they will be re-rendered when ggRandomForests 4.0.0 releases. sibling-versions.json keeps ggRandomForests at that older commit on purpose, so the weekly version check keeps flagging the pending refresh.

Built against

hvtiR 1.3.3, hvtiPlotR 2.8.18, hvtiRutilities 1.5.13, hvtiRtables 1.0.11, TemporalHazard 1.2.16 and ggRandomForests 4.0.0 (99acd37), with randomForestSRC 3.9.0, varPro 3.3.0, mlbench 2.1-11, consort 1.2.4 and ggsci 5.2.0. sibling-versions.json records them. The changed chapters were rendered locally against the tagged releases, so their HTML figures are set in Helvetica rather than the CI build's Nimbus Sans.

HVTI Recipes 3.1.7

Choose a tag to compare

@ehrlinger ehrlinger released this 13 Oct 01:06
d6758f3

A patch edition with one correction you should know about, a new recipe on journal colour palettes, and a re-render against the family's current releases.

Read it: https://ehrlinger.github.io/hvtiGraphics/

A correction first

The JTCVS summary table in Manuscript tables had no p-values in 3.1.5 and 3.1.6 (#93). The table built with hv_tbl_summary(compare = "pvalue") printed an empty p-value column, and hv_test_footnotes_jtcvs() returned no footnotes, so the letters naming each test were missing too. The cause was the build, not the packages: the CI render that drew the chapter lacked broom, which gtsummary's comparison tests call through cardx, and the warning saying so was suppressed in the book. Both are restored (Wilcoxon rank sum for the continuous rows, chi-square for diabetes). If you copied that table's layout, the p-value column belongs in it. broom is now in the book's install line, because a fresh machine hits the same silent blank.

3.1.7

  • A new recipe, "Journal palettes" (#91), in the colour chapter. ggsci packages the palettes of NEJM, The Lancet, JAMA, BMJ, JCO, Science, Nature and Frontiers as ggplot2 scales; the recipe shows them side by side and says what each is for. It also reports a check under simulated red-green colour blindness: Lancet pairs red with green, BMJ's blue and purple nearly merge, and AAAS and Frontiers are weak, while JAMA, JCO and Nature hold up about as well as the house palette. None of the cardiothoracic journals (JTCVS, The Annals of Thoracic Surgery, EJCTS) has a palette, so the house palette stays the default there.
  • The box-plot jitter recipe sets its own seed (#93). hvtiPlotR 2.8.6 stopped the sample_*() data generators from leaving set.seed() behind in your session, which is the right behaviour, and which showed that the recipe's geom_jitter() had been leaning on it. It now uses position_jitter(seed = ), and the text says why.
  • proc_means() prints the group's report statistics (#93). Under hvtiRutilities 1.5.2 its default adds the 15th percentile, median and 85th percentile; the data tables chapter describes the new default and the SAS-parity caveat.
  • The CONSORT diagram is redrawn under consort 1.2.4, which changed its layout. The counts are unchanged.
  • The version check now watches ggsci and consort alongside randomForestSRC, varPro and mlbench.

Everything else is unchanged: 160 of 168 HTML figures are pixel-identical to 3.1.6.

Built against

hvtiR 1.2.7, hvtiPlotR 2.8.6, hvtiRutilities 1.5.2, hvtiRtables 1.0.3, TemporalHazard 1.2.15 and ggRandomForests 4.0.0 (3753051, v4.0.0-rc8), with randomForestSRC 3.9.0, varPro 3.3.0, mlbench 2.1-11, consort 1.2.4 and ggsci 5.2.0. sibling-versions.json records them. The HTML cache comes from a CI build against those versions; the PDF was rebuilt locally against the same commits.

HVTI Recipes 3.1.6

Choose a tag to compare

@ehrlinger ehrlinger released this 06 Oct 19:57
aa48a90

A patch edition with one correction you should know about, a new recipe on numbering figures and tables, and figures that now come out the same however and wherever the book is built.

Read it: https://ehrlinger.github.io/hvtiGraphics/

A correction first

The varPro chapter's "recurrence" figure showed the wrong class (#86). On a two-level outcome, varPro::ivarpro() explains the first level, here N (no recurrence), and ggRandomForests filed that profile under the last level, R. So the figure captioned as recurrence showed positive lymph nodes lowering the probability of recurrence, which is the no-recurrence profile with its sign reversed. ggRandomForests now derives the recurrence profile exactly (ehrlinger/ggRandomForests#316), and the figure shows what its caption says: the forest's recurrence probability rises with node count. If you copied that figure or its reading into anything, recheck it. The chapter also explains which_class properly now, and the class-conditional plot labels its panels N and R instead of varPro's internal 0 and 1 (ehrlinger/ggRandomForests#315).

3.1.6

  • A new recipe, "Numbering figures and tables" (#83), in the publications part. Quarto numbers a figure only when it has a fig- label and a fig-cap, and a table only with a tbl- label and tbl-cap; the recipe covers that, computed captions, and the other ways a figure quietly loses its number.
  • The house percentile box (#80). boxplots.qmd documents the box ggRandomForests::gg_varpro() draws, with hinges at the 15th and 85th percentiles, whiskers at the 5th and 95th and no outlier points, beside the Tukey box it is easy to mistake it for. Ten chapters move to the house colour rule: the Okabe-Ito palette for groups in place of Set1 and Dark2, and RdBu in place of RdYlGn for ordered scales.
  • The Sankey chapter teaches the new default palette (#85): Paul Tol's muted nine from hvtiPlotR 2.8.5, which hold up for red-green colour-blind readers, and the partial node_colours override.
  • Random-forest output is reproducible (#81, #82). A forest grown on several threads does not honour set.seed(), so the same seeded fit gave a different answer on every run of the book's CI build. Every forest now grows on one thread. Two chapters had blamed that drift on the change of platform; they now name the real cause and show options(rf.cores = 1) as the fix in your own analyses.
  • Figures carry their exact colours (#84, #87). Built on a Mac, every HTML figure's colours had been shifted darker (the PDF's never were): "firebrick" came out #A0111A instead of #B22222. HTML figures are now drawn with ragg, which writes the exact values on every platform, and the whole HTML cache comes from one clean CI build against the versions recorded below. You will see slightly lighter, truer colours throughout.

Built against

hvtiR 1.2.5, hvtiPlotR 2.8.5, hvtiRutilities 1.4.4, hvtiRtables 1.0.3, TemporalHazard 1.2.12 and ggRandomForests 4.0.0 (c2e494d), with randomForestSRC 3.9.0, varPro 3.3.0 and mlbench 2.1-11. sibling-versions.json records them. The PDF is built locally and its figures are unchanged where its chapters were not re-rendered.

HVTI Recipes 3.1.5

Choose a tag to compare

@ehrlinger ehrlinger released this 02 Oct 23:02
db8280f

A patch edition: a new chapter on designing slides, and the whole book re-rendered against the family releases of 2026-10-02.

Read it: https://ehrlinger.github.io/hvtiGraphics/

3.1.5

  • A new chapter, "Designing slides" (#77). It sits immediately before presentations and gives the reasons behind its how-to: speaker, slide and audience as one system, how audiences process slides, and the house slide guidance it rests on. It also documents the light slide palette that shipped in hvtiPlotR 2.8.3.
  • Material from the April 2026 Research Day session (#78). The chapter gains:
    • building the talk;
    • slide habits from the session;
    • delivery;
    • questions and answers;
    • links to the studies its claims rest on.
  • Re-rendered against today's releases (#79). Every chapter executed with the freeze deleted, against hvtiR 1.2.5, hvtiPlotR 2.8.4, hvtiRutilities 1.4.4, hvtiRtables 1.0.3, TemporalHazard 1.2.12 and ggRandomForests 4.0.0. Nothing broke, and sibling-versions.json records those versions. Only the HTML figures were re-rendered; the PDF figures in the freeze are unchanged from 3.1.4.

HVTI Recipes 3.1.4

Choose a tag to compare

@ehrlinger ehrlinger released this 30 Sep 18:45
054d5a9

A patch edition. It also covers 3.1.3, which was merged (#73) without a tag or release, so these notes run from the last release, 3.1.2.

Read it: https://ehrlinger.github.io/hvtiGraphics/

3.1.4

  • The function map counts code, not mentions (#74). A chapter used to count as a worked recipe for a function if its prose merely named it. Now only R code blocks count. That took 18 functions off chapters that only mentioned them, and showed that hv_ph_location() had no code anywhere in the book.
  • A worked recipe for hv_ph_location() (#75): "The same panel position on every slide", in presentations. It shows how to land every plot's panel at the same slide position when axis labels differ in width. The function map reads 85 of 85, with code behind every entry.
  • Smaller fixes (#74):
    • nnt: three colour scales that did nothing are removed.
    • temporal_prediction: says which scale se.fit is on, and that conf.type governs the survival limits only.

3.1.3

  • Rebuilt against ggRandomForests 4.0.0-rc7 and hvtiPlotR 2.8.2 (#73), with TemporalHazard 1.2.12, from a SHA-pinned private library.
  • Refit-based uncertainty bands for partial dependence (#72).
  • bar legends match the stack again (#70, hvtiPlotR 2.7.17).
  • The version record covers the CRAN packages that shape output (#70): randomForestSRC, varPro and mlbench, and the weekly check compares them against CRAN.

HVTI Recipes 3.1.2

Choose a tag to compare

@ehrlinger ehrlinger released this 25 Sep 13:49
0fb5232

A patch edition covering the PRs merged since 3.1.1 (2026-09-04, #56–#67). No chapters or parts were added or moved.

Read it: https://ehrlinger.github.io/hvtiGraphics/

What changed for readers

  • The whole book was re-rendered against the current hvtiR family (#65): hvtiR 1.2.1, hvtiPlotR 2.7.15, hvtiRtables 1.0.2, hvtiRutilities 1.4.0, TemporalHazard 1.2.11 and ggRandomForests 4.0.0. The re-render exposed and fixed:
    • bar: the NYHA palette flipped under hvtiPlotR 2.7.15, drawing class IV green. Colours are now pinned to each class by name.
    • hv_tables: a pitfall said hv_man_table() prints 77 ||| … literally, which has been false since hvtiRtables 0.9.7. It now covers the Overall column instead.
    • temporal_migration: the translator no longer maps CONDITION=14, and the DELTA row is now planned. The prose says both.
  • Numbers at risk for the NNT chapter (#66): NNT estimated from Kaplan-Meier curves on patient records, with a two-arm risk table counted from the same records. At 20 years the table shows only 2 SVG patients behind the estimate.
  • Partial dependence is described as a model summary (#65), not an adjusted or causal dose-response.
  • A voice pass across 37 chapters (#65), plus smaller factual fixes in sankey, rf_dependence, rf_shap, balance, boxplots, nnt and legends.

Upstream fixes found along the way

Earlier in this edition: #56 to #63 covered label_map()'s four columns, the mlbench data change, declaring ggraph, moving the function map out of the freeze, rf_vimp reproducibility notes, and the twelve-package family page.

v2.0.0 — second edition

Choose a tag to compare

@ehrlinger ehrlinger released this 25 Jun 15:08
e3f3a53

Second edition of the HVTI ggplot graphics recipes book. New varPro partial-dependence and presentations chapters; rfsrc-scale varpro data and a Pima-diabetes ROC; numbers-at-risk composites and the canonical cluster Sankey + milestone alluvial from hvtiPlotR 2.5/2.6; a house figure-conventions pass; and PR render-check CI. Read it: https://ehrlinger.github.io/hvti_graphics/

v1.0.0 — first complete edition

Choose a tag to compare

@ehrlinger ehrlinger released this 24 Jun 14:22
f1d00e3

First complete edition of the HVTI ggplot graphics recipes book.

  • Full figure catalog plus random-forest and varPro recipes (new: gg_partial_varpro, gg_udependent).
  • Migrated hazard.qmd/nnt.qmd to the hv_* S3 constructors.
  • README + CC BY 4.0 license.

Read it: https://ehrlinger.github.io/hvti_graphics/