Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/revdep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ jobs:

- uses: actions/checkout@v6

# setup-r puts Rscript on PATH; the set-matrix step below runs via
# `shell: Rscript`, which otherwise fails with "Rscript: command not found"
# on the bare runner.
- uses: r-lib/actions/setup-r@v2

- id: set-matrix
run: |
package <- read.dcf("DESCRIPTION")[, "Package"][[1]]
Expand Down
6 changes: 3 additions & 3 deletions CRAN-SUBMISSION
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Version: 0.6.1
Date: 2026-03-27 04:50:35 UTC
SHA: 65b5237fbbb6e59fab417f73b35232d62fe2b82b
Version: 0.7.0
Date: 2026-07-03 02:03:54 UTC
SHA: 421110cd2d7a1d282ec6d81f195a50de4d2ce752
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Package: tinyplot
Type: Package
Title: Lightweight Extension of the Base R Graphics System
Version: 0.6.1.99
Date: 2026-03-28
Version: 0.7.0
Date: 2026-07-02
Authors@R:
c(
person(
Expand Down
55 changes: 30 additions & 25 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ _If you are viewing this file on CRAN, please check the
[latest NEWS](https://grantmcdermott.com/tinyplot/NEWS.html) on our website
where the formatting is also better._

## Development
## v0.7.0

**tinyplot** v0.7.0 is a big release with many new features, including major
updates to our theming logic and aesthetic stylings. Related updates are grouped
below for easier navigation.

### Aesthetic changes

The main focus of v0.7.0 is bringing various aesthetic improvements to
A major focus of v0.7.0 is bringing various aesthetic improvements to
**tinyplot**. These aesthetic improvements should carry over to all of your
(tiny)plots automatically and do not require any changes to user-facing inputs
or the core API. From that perspective they are not a breaking change, even
Expand All @@ -22,7 +26,7 @@ visualizations:
side-positioned legends like `"right!"` and `"left!"`. This is a minor visual
change from the previous default of centered legends, which we inherited from
base R. However, users can still override this behaviour with the new `ljust`
parameter, which accepts values of `"l(eft)"` (new default) or `"c(enter")`
parameter, which accepts values of `"l(eft)"` (new default) or `"c(enter)"`
(old default). (#500 @grantmcdermott)
- Example: Override globally by setting `tpar(ljust = "c")`, or revert for a
single plot by passing the parameter as part of the legend list arguments,
Expand All @@ -34,9 +38,9 @@ visualizations:
- Note: The plot (facet) RHS margin is automatically expanded to prevent text
clipping of these direct legend labels. However, the labels themselves may
still overlap. Users can prevent this by passing helper arguments to the
legend contructor: either `repel` (for automatic vertical separation) or
legend constructor: either `repel` (for automatic vertical separation) or
`nudge_x`/`nudge_y` (for manual per-group offsets). For example,
`plt(..., legend = list("direct", repel = TRUE))`.
`plt(..., legend = list("direct", repel = TRUE))`.

#### Theme aesthetics

Expand All @@ -56,19 +60,19 @@ New theme features:
- Similarly, `tinytheme()` also accepts `gap.main` and `gap.sub` primitives
for controlling the spacing between titles and the plot region.
(#595 @grantmcdermott)
- Existing theme refinements and improvments. (#595, #603 @grantmcdermott).
- Existing theme refinements and improvements. (#595, #603 @grantmcdermott).
- `"tufte"` and `"void"` are now dynamic (responsive margins).
- All of the `ggplot2`-inspired themes (`"bw"`, `"classic"`, etc.) now use
smaller axis text and tighter spacing to better match their upstream
`ggplot2` counterparts.
- `"ipsum"` has been similarly overhauled to match the upsteam theme (bold
- `"ipsum"` has been similarly overhauled to match the upstream theme (bold
title, no ticks, fine grid, custom palette). Our original `tinyplot` variant
is preserved as `"ipsum2"` for those who still want to use it.
- `"dark"` now uses a better default `ribbon.alpha` for better contrast
against the black background.
- Added several new themes. (#595, #606 @grantmcdermott)
- `"dynamic"` (new foundation for all other dynamic themes)
- `"broadsheet"` (data journalism style _a la_ _The Economist_ or _NY Times_)
- `"broadsheet"` (data journalism style la_ _The Economist_ or _NY Times_)
- `"float"` (floating axes; a variant of `"tufte"`)
- `"linedraw"` (based on the `ggplot2` theme)
- `"nber"` (NBER working paper style)
Expand Down Expand Up @@ -139,7 +143,7 @@ Theme fixes:
- Left-justified `main` and `sub` titles now correctly anchor to the y-axis
line, even when long horizontal tick labels widen the left margin. (#479)
- Similarly, center-justified axis titles are now anchored on the relevant
axis alone, rather than the full plot region. (#573)
axis alone, rather than the full plot region. (#573)
- `cex.xlab` and `cex.ylab` now correctly control axis title size. The
more general `cex.lab` is still respected as a fallback. (#574)
- Margin spacing now correctly adjusts for math expressions, including
Expand Down Expand Up @@ -219,7 +223,7 @@ Theme fixes:
separation from `sub` is guaranteed). Appearance is customizable via
`tpar()` parameters: `adj.cap`, `cex.cap`, `col.cap`, `font.cap`, and
`line.cap`. (#592 @grantmcdermott)
- `weights = <varname>` for adding weights to statisical transformations.
- `weights = <varname>` for adding weights to statistical transformations.
Supported types are models (`type_lm()`, `type_glm()`, `type_loess()`) and
distributions (`type_density()`, `type_histogram()`, `type_spineplot()`). A
warning is emitted if `weights` is passed to an unsupported type and the
Expand Down Expand Up @@ -276,14 +280,14 @@ Theme fixes:
- If the offset is a character or named numeric vector, it instead "sets
aside" the named level(s) of the `by` group, pulling them out of the stack
and drawing them as standalone bars. This is useful for Likert plots,
where you want to show a neutral categories (e.g., "Unsure") apart from
where you want to show a neutral category (e.g., "Unsure") apart from
the diverging stack. Thanks to @strengejacke for the suggestion.
- `type_text()` gains two new arguments:
- a `labeller` argument that is passed to `tinylabel()` for formatting the
text labels. (#620 @grantmcdermott)
- a `repel` argument that automatically nudges overlapping text labels
apart. One limitation is that the repulsion logic operates with groups. So
there may still be some overlapping text for for grouped data.
apart. One limitation is that the repulsion logic operates within groups.
So there may still be some overlapping text for grouped data.
(#621 @grantmcdermott)
- Model-fit and various distribution types gain a `weights` argument; although
this is best provided from the top-level `tinyplot()`/`plt()` call. See
Expand All @@ -301,12 +305,13 @@ Theme fixes:
margin adjustment now computes tick labels per-facet and sizes the margin to
accommodate the widest labels. (#579 @grantmcdermott)
- Fixed several minor issues related to facet title strips and spacing: Strips
and spacing now scale correctly with `facet.cex`, multiline facet titles
inter-panel gaps remain fixed regardless of strip height, and strip text is
now vertically centered within the background rect. (#586 @grantmcdermott)
and spacing now scale correctly with `facet.cex`; inter-panel gaps for
multiline facet titles remain fixed regardless of strip height; and strip
text is now vertically centered within the background rect.
(#586 @grantmcdermott)
- Fixed Issue #593 where `palette.qualitative` in themes could not be a
function. Thanks to @katrinabrock for the report. (#594 @zeileis)
- Polygon density hatching lines now correctly use the group colour instead of
- Polygon density hatching lines now correctly use the group colour instead of
black. Affects `type_polygon`, `type_chull`, and `type_ellipse` when
`density` is set. (#610 @grantmcdermott)
- Fixed inconsistent decimal places in the `tinylabel()` currency and comma
Expand Down Expand Up @@ -354,14 +359,14 @@ Theme fixes:
(factor) produces a barplot, `~ x` (factor) produces a barplot, and `~ x`
(numeric) produces a scatterplot against the index. The `~ 0` form is useful
for types that don't require x/y, such as `segments` and `rect`. Thanks to
@katrinabrock for the suggestion. (#534 @zeileis, @grantmcdermott)
@katrinabrock for the suggestion. (#534 @zeileis @grantmcdermott)

### Bug fixes

- Fixed Issue #545 where xaxs/yaxs were not restored when set by an internal
function. (#545 @zeileis)
- Fixed Issue #553 where `facet.args = list(free = TRUE)` lead to an error
when used used without facets. Thanks to @katrinabrock for the report.
when used without facets. Thanks to @katrinabrock for the report.
(#554 @zeileis)
- Fixed `type_ridge()` fill errors for themes that set a qualitative palette,
e.g. `"clean2"`. (#564 @grantmcdermott)
Expand Down Expand Up @@ -588,8 +593,8 @@ Theme fixes:
cairo graphics are supported on the user's machine. This should help to ensure
better fidelity of (non-standard) fonts in PDFs. (#311 @grantmcdermott)
- The `palette` argument now accepts a vector or list of manual colours, e.g.
`tinyplot(..., palette = c("cyan4", "hotpink, "purple4"))`, or
`tinytheme("clean", palette = c("cyan4", "hotpink, "purple4"))` (#325 @grantmcdermott)
`tinyplot(..., palette = c("cyan4", "hotpink", "purple4"))`, or
`tinytheme("clean", palette = c("cyan4", "hotpink", "purple4"))` (#325 @grantmcdermott)
- Two new sets of top-level arguments allow for greater axis customization:
- `xaxb`/`yaxb` control the manual break points of the axis tick marks. (#400 @grantmcdermott)
- `xaxl`/`yaxl` apply a formatting function to change the appearance of the
Expand Down Expand Up @@ -840,7 +845,7 @@ enable fine-grained control over this behaviour. (#228 @eleuven and
- Major internal refactor of the type drawing and data processing. (#222
@vincentarelbundock)
- Documentation improvements, e.g. explicit guidance on how to specify multiple
grouping variables (thanks to @strengjacke for reporting #213).
grouping variables (thanks to @strengejacke for reporting #213).
- The new functional type processing system also means that each type now
has its own help page (e.g. `?type_hist`, `type_ridge`, etc.)

Expand Down Expand Up @@ -981,7 +986,7 @@ This function replaces some older (non-exported) internal functions that
also prove help to end users who are looking for additional ways to restore
`par` settings after the fact. See `?get_saved_par` for some examples. (#152
@grantmcdermott)
- `tinyplot`/`plt` gaina a new `alpha = <numeric[0,1]>` convenience argument for
- `tinyplot`/`plt` gains a new `alpha = <numeric[0,1]>` convenience argument for
adding transparency to plot elements and colours. Example use:
`plt(rnorm(1e3), pch = 19, alpha = 0.3)`. (#129 @grantmcdermott)
- Similar to the preceding news item, transparency can be added to (grouped)
Expand Down Expand Up @@ -1098,7 +1103,7 @@ added in future releases. (#33, #94 @grantmcdermott)
Bug fixes:

- Y-label correctly prints if a function was used for the atomic plot method,
e.g. `plot2(rnorm(100)`. (#52 etiennebacher)
e.g. `plot2(rnorm(100))`. (#52 etiennebacher)
- Ribbon plot types are now automatically ordered by the x variable. (#54
@grantmcdermott)
- Interval plots like ribbons, errorbars, and pointranges are now correctly
Expand Down Expand Up @@ -1176,7 +1181,7 @@ Bug fixes:
Internals:

- Better formula parsing for `plot2.formula` (#8 by @zeileis).
- Unit testing scaffolding based on **tinysnaphot** (#11 by @vincent).
- Unit testing scaffolding based on **tinysnapshot** (#11 by @vincent).

Project:

Expand Down
2 changes: 1 addition & 1 deletion R/type_barplot.R
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
#' col = NA, # (optional: turn off border)
#' legend = FALSE
#' )
#' tinyplot_add(type = type_vline(4.5), lty = 2)
#' tinyplot_add(type = type_vline(4.5), lty = 2, col = "grey50")
#'
#' # 2. Diverging/Likert layout: a character (or named numeric) offset "sets
#' # aside" the named category, pulling it out of the centered stack and drawing
Expand Down
7 changes: 6 additions & 1 deletion README.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ knitr::opts_chunk$set(
fig.path = "man/figures/README-",
out.width = "70%",
fig.width = 8,
dpi = 100,
dpi = 120,
asp = 0.625
)
```
Expand Down Expand Up @@ -162,3 +162,8 @@ tinytheme()
Hopefully, these have been enough to pique your interest. Head over to the
[intro tutorial](https://grantmcdermott.com/tinyplot/vignettes/introduction.html)
for many more examples, including model-based and custom plot types.

```{r tinyimg}
#| include: false
if (requireNamespace("tinyimg")) tinyimg::tinypng("man/figures")
```
2 changes: 1 addition & 1 deletion altdoc/pkgdown.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ altdoc: 0.7.2
pandoc: '3.10'
pkgdown: 2.1.3
pkgdown_sha: ~
last_built: 2026-07-02T18:34:34+0000
last_built: 2026-07-03T00:53:01+0000
urls:
reference: https://grantmcdermott.com/tinyplot/man
article: https://grantmcdermott.com/tinyplot/vignettes
17 changes: 13 additions & 4 deletions cran-comments.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
## Overview

**tinyplot** v0.6.1 is a patch release containing bug fixes.
**tinyplot** v0.7.0 is a feature release. It brings major updates to our theming
logic and aesthetic stylings, several new plot types and `tinyplot.*` methods,
and various other enhancements and bug fixes. See NEWS.md for the full list of
changes.

## Test environments
macOS (local)
Expand All @@ -9,10 +12,16 @@ Win Builder

## R CMD check results

0 errors | 0 warnings | 1 note
0 errors | 0 warnings | 0 notes

Note: New maintainer email address (contact@grantmcdermott.com). This is the same
person, just a different email.
## Reverse dependency checks

We ran reverse-dependency checks on all 12 CRAN revdeps. All packages that
could be checked showed no status change from the current CRAN version of
tinyplot. One package, 'RTMB', failed to install in our CI environment under
both the old and new versions of tinyplot (identical ERROR, unrelated to this
submission -- RTMB requires a TMB/C++ toolchain build that did not complete in
our runner).

P.S. We continue to run a comprehensive test suite comprising hundreds of test
snapshots (i.e., SVG images) as part of our CI development workflow. See:
Expand Down
Binary file modified man/figures/README-quickstart2-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified man/figures/README-quickstart3-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified man/figures/README-quickstart4-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified man/figures/README-quickstart5-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified man/figures/README-quickstart_theme-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion man/type_barplot.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.