Skip to content
see needs insight, which CRAN will archive unless its check problems are fixed by Nov 14.

Model Visualisation Toolbox for 'easystats' and 'ggplot2'

4packages dependsuggested by 15
301.9Kdownloads / year
60.0%test coverage
13/13flavors OK

Overview

About

Provides plotting utilities supporting packages in the 'easystats' ecosystem (https://github.com/easystats/easystats) and some extra themes, geoms, and scales for 'ggplot2'. Color scales are based on https://materialui.co/. References: Lüdecke et al. (2021) doi:10.21105/joss.03393.

Changes in 0.15.0

Changes

  • The Linearity and Homogeneity of Variance panels of check_model() (and the plot of check_heteroscedasticity()) now draw the mean of each cell, joined by a line, in place of the LOESS smoother when the fitted values take only a few distinct values, for example in models with only categorical predictors. A LOESS fit over so few values warned and could bend far outside the data. When show_ci is TRUE, the cell means get 95% error bars. Note that *performance* currently turns show_ci off for models whose terms are all factors without interactions (#464).
  • plot() for check_model() and check_heteroscedasticity() gains a show_smooth argument. With show_smooth = FALSE, the Linearity and Homogeneity of Variance panels draw neither the LOESS smoother nor the cell means, the Influential Observations panel draws no LOESS smoother, and the subtitles of the Linearity and Homogeneity of Variance panels no longer refer to a reference line (#464).
Show all changes in 0.15.0Hide the rest of the changes in 0.15.0
  • plot() for datawizard::means_by_group() gets a flip argument. Use flip = FALSE to show the groups on the horizontal axis (#455).
  • geom_violinhalf() and geom_violindot() are now drawn with the *ggdist* package (ggdist::stat_slab() and ggdist::geom_dots()), which they now need (version 3.3.3 or later). They work with facets and free scales (#81, #385), and the plots look a little different. Dodged groups each take half of their dodge cell, from its centre, as before. The dots of geom_violindot() were not dodged before. By default, they now go in the other half of the cell (they overlap a flipped half violin). The new interval argument adds the median with 66% and 95% intervals (#68). The binwidth default of geom_violindot() is now NA (it was 0.05), so ggdist sizes the dots to the data (#44). Other arguments in ... of geom_violindot() now go to ggdist::geom_dots() (instead of geom_dotplot()) as well as to the half violins, except the arguments of the density, the layout, and the interval, which go to the half violins only (see ?geom_violindot). A width in ... is the width of a whole violin, as in geom_violin(), so each half violin is half as wide. bounds must contain all values; otherwise the half violins are not drawn. The stat argument is now ignored, with a warning for any value other than "ydensity" or ggplot2::StatYdensity. geom_violindot() no longer works with coord_polar().
  • plot() for modelbased::estimate_contrasts() now draws joint contrasts of two or more variables, such as contrast = c("am", "cyl"). The x axis shows the combinations of levels, such as "auto, 4".
  • plot() for modelbased::estimate_contrasts() gains a show_data argument. With show_data = TRUE, the plot draws the raw data of the model as jittered points behind the lighthouses (easystats/modelbased#114).
  • plot() for modelbased::estimate_contrasts() now draws more kinds of estimates. It draws means in a Probability, Proportion, or Rate column, such as the probabilities of a logistic model. It draws ratio contrasts from comparison = ratio ~ pairwise as ratios of the means. With the default backend, it draws contrasts of a log response estimated with transform = TRUE as ratios of the back-transformed means. The plot stops with an error for contrasts back-transformed from some other transformations, such as sqrt(y). When insight::find_transformation() reports a transformation other than "identity", it also stops for ratio contrasts estimated with transform = TRUE. It also stops for contrasts and means on different scales, as their predict or transform arguments show. The help page lists the exceptions. With show_data = TRUE, the plot draws a logical or two-level factor response as 0 and 1. It also draws the raw data of y for a response log(y), log2(y), or log10(y). This needs contrasts and means estimated with transform = TRUE.
  • plot() for modelbased::estimate_contrasts() now draws ordinal and multinomial models, such as MASS::polr() and mclogit::mblogit(), with one panel per response category. Each panel shows the probabilities of that category and the contrasts within it. Contrasts between two categories are not drawn. show_data = TRUE stops with an error for these models. The plot also draws Bayesian ratio contrasts from comparison = ratio ~ pairwise as ratios. When insight::find_transformation() reports "identity", it draws ratio contrasts estimated with transform = TRUE as ratios. It accepts contrasts and means on the link scale from the marginaleffects and emmeans backends together. For some models, such as lm(y ~ x), the link scale counts as the response scale. These models have an identity link, and insight::find_transformation() reports their response as "identity". The link scale does not count for a model with a zero-inflation or hurdle part.
  • plot() for modelbased::estimate_contrasts() now shows only the panels of the by levels that the contrasts have. It leaves out the means and raw data of other levels. A numeric contrast variable at unevenly spaced values, such as contrast = "wt=c(2,2.5,4)", gets a continuous x axis that keeps their spacing. Joint contrasts of three or more variables show one level per line in the axis labels. A by variable named PANEL, ROW, COL, SCALE_X, or SCALE_Y no longer stops the plot.
  • If a term with a VIF below 2 has an upper confidence limit that is infinite or above the top of the plot, the collinearity plot now has a caption. The caption says that the interval formula (from *performance*) fails near VIF = 1, and that this is not high collinearity. This applies to plot() for check_collinearity() and to the collinearity panel of check_model(). The y axis now extends below VIF = 1, so the axis no longer cuts off points at 1 (#399).

Bug fixes

  • plot() for structural equation models from parameters::model_parameters() drew latent factors as observed variables and indicators as latent variables. Latent factors are now drawn as circles and indicators as squares.
  • plot() for structural equation models now gives an informative error when the selected component has no paths to plot, for example component = "regression" for a confirmatory factor analysis (#243).
  • geom_binomdensity() now works with facets. It no longer drops the columns other than x and y, so each panel shows only its own data (#192).
  • When check_model() failed to create plots, the informative message about troubleshooting and workarounds was no longer printed. This should now work again.
  • plot() for modelbased::estimate_contrasts() now draws each contrast estimated with by from the means of its own by level. Previously, it mixed the means of all by levels into each contrast. If the means listed the by variable first, it drew no contrasts. The plot now shows one panel per level, or combination of levels, of the by variables. The x axis now shows the contrasted variable in the order of its levels (easystats/modelbased#267).
  • When some observations had a missing Cook's distance, plot() for check_outliers() failed with "arguments imply differing number of rows". An example is rows with missing values in a model fitted with na.action = na.exclude. The scree and count plots now leave these observations out, and the labels still name the right rows.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 11.3 min · r-release-macos-x86_64
Status changes
  • OK13 OK2026-10-21
  • ERROR12 OK, 1 ERROR2026-10-20
  • OK13 OK2026-10-18
  • ERROR11 OK, 2 ERROR2026-10-16
  • OK13 OK2026-09-08
Show 12 earlier changesHide 12 earlier changes
  • ERROR11 OK, 2 ERROR2026-09-02
  • OK13 OK2026-08-04
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-05-20
  • ERROR12 OK, 1 ERROR2026-05-17
  • OK13 OK2026-05-09
  • ERROR12 OK, 1 ERROR2026-04-30
  • OK13 OK2026-04-28
  • ERROR13 OK, 1 ERROR2026-04-24
  • OK14 OK2026-03-31
  • ERROR13 OK, 1 ERROR2026-03-25
  • OK14 OK2026-03-10
Advisories

none known

Documentation

In release 0.15.0
README· In the repository, left out of the releaseVignettes· In the repository, left out of the releaseNEWSYes · 100% structured · mentions 0.15.0Citation fileYes · cites a publicationWebsiteYes · pkgdown
Cites a JOSS paper
Help pages
79 (1 internal)includes a package overview page
Examples that run
92%61 run in a plain check (21 of them under a condition) · 3 only when donttest examples are enabled (R CMD check --as-cran) · 2 never run
Exported functions with examples
77%
Documented parameters
96%
Return-value docs
23%
Help pages citing references
6%

Downloads

301.9K
CRAN downloads in the past year
Rank #663 · ~827/day · ~25.2K/mo
Daily download trend is not available in this view yet.
27K30 days
83.3K90 days
301.9K1 year
Compare downloads with other packages →
Also on1.8K r2u3 autocran5.1K conda_forge

Repository

956Stars
48Forks
22Open issues
6Open PRs
23Releases
1,853Commits
19Commit identities
seeeasystatsrvisualisationplottinghacktoberfestggplot2statistics
1,853 commits · Last activity 2026-10-20 · +0.2% stars, 30d · Default branch at 0.15.0.2, ahead of CRAN 0.15.0 (checked 2026-10-21)
Responsiveness
How these are sampled
PRs merged (all time)
90%
Median days to close, 50 most recently updated closed issues
536
Median days to close, 50 most recently updated closed PRs
0

Stars over time

2025-10-23 · 9252026-09-30 · 956
PracticesBeta

16 development-tooling and community-health practices detected across 7 families in the upstream repository

Checks run against github.com/easystats/see on 2026-10-21.

Continuous integration (1)
GitHub Actions
Governance and community (5)
Code of conductContributing guideFundingSupport guide

Funding links: GitHub Sponsors

The repository owner accepts GitHub Sponsors

Docs source (3)
README.Rmdpkgdown

GitHub Pages site last deployed 2026-10-20

pkgdown site last built 2026-10-20

Coverage (1)
Coverage reporting
Show all practicesHide 3 practices
CRAN release process (2)
cran-comments.mdrevdep/
Lint, format, editor (3)
lintrAirRStudio project
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v4 (2026-10-20)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2025-09-14
    Seen in the repository: .claude
    Named in .Rbuildignore: .claude
  • GitHub Copilotfirst seen 2025-09-15
    Pull request: opened by its own account
    Commits: 2 by its own account · at least 2 crediting it in the message
Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
48 external dependencies (excludes base and recommended)

Installing see adds 26 packages (7 with compiled code, 23 MB of source tarballs). Heaviest: ggplot2 6.0 MB, patchwork 3.2 MB, performance 1.9 MB.

Depends (4)
R >= 4.1graphicsgrDevicesstats
LinkingTo (0)
none
Enhances (0)
none
Dependencies facing archival

CRAN will archive these unless their check problems are fixed by the date shown. This package needs each one to install.

Reverse dependencies
4direct
0indirect
Imports 4
Suggested by 15
Show all 19 packagesHide all 19 packages
Depends, Imports or LinkingTo, most downloaded first
Suggests, most downloaded first

People & History

People (11)
Author, Maintainer since 0.13.0 (2026)
Author, Contributor
Author, inv
Author · added in 0.6.3
Author, Contributor · added in 0.12.0
Author, Contributor
Author, Contributor · added in 0.6.0
Contributor · added in 0.14.2
Contributor · added in 0.6.2
Reviewer · added in 0.6.7
Reviewer · added in 0.6.7

Previously maintained by Indrajeet Patil (0.7.3 to 0.12.0) and Daniel Lüdecke (0.1.0 to 0.7.2).

Releases (38)

Pick two releases to compare their code metrics.

Show 30 earlier eventsHide 30 earlier events
  • 0.8.1
    record
    2023-11-03 · diff ↗
  • 0.8.0
    record
    2023-06-05 · diff ↗
  • R
    R 4.3.0 released · 2023-04-21
  • 0.7.5
    record
    2023-03-23 · diff ↗ ·
    added 2 exports
    scale_color_oi, scale_colour_oi
  • 0.7.4
    record
    2022-11-26 · diff ↗ ·
    added 10 exports
    palette_colorhex, scale_color_colorhex, scale_color_colorhex_c, scale_color_colorhex_d, scale_colour_colorhex, scale_colour_colorhex_c, scale_colour_colorhex_d, scale_fill_colorhex, scale_fill_colorhex_c, scale_fill_colorhex_d
  • 0.7.3
    record
    2022-09-20 · diff ↗
  • 0.7.2
    record
    2022-08-10 · diff ↗ ·
    added 8 exports
    oi_colors, okabeito_colors, palette_oi, palette_okabeito, scale_color_okabeito, scale_colour_okabeito, scale_fill_oi, scale_fill_okabeito
  • 0.7.1
    record
    2022-06-20 · diff ↗
  • R
    R 4.2.0 released · 2022-04-22
  • 0.7.0
    record
    2022-03-31 · diff ↗
  • 0.6.9
    record
    2022-02-15 · diff ↗
  • 0.6.8
    record
    2021-10-03 · diff ↗
  • 0.6.7
    record
    2021-08-23 · diff ↗ ·
    added 3 exports
    geom_binomdensity, geom_from_list, geoms_from_list
  • 0.6.4
    record
    2021-05-29 · diff ↗
  • R
    R 4.1.0 released · 2021-05-18
  • 0.6.3
    record
    2021-04-09 · diff ↗
  • 0.6.2
    record
    2021-02-04 · diff ↗
  • 0.6.1
    record
    2020-12-06 · diff ↗
  • 0.6.0
    record
    2020-09-13 · diff ↗ ·
    added 6 exports
    geom_count2, geom_count_borderless, geom_jitter_borderless, geom_point_borderless, geom_pointrange2, geom_pointrange_borderless
  • 0.5.2
    record
    2020-07-27 · diff ↗ ·
    added 22 exports
    bluebrown_colors, palette_bluebrown, palette_see, scale_color_bluebrown, scale_color_bluebrown_c, scale_color_bluebrown_d, scale_color_see, scale_color_see_c, scale_color_see_d, scale_colour_bluebrown, scale_colour_bluebrown_c, scale_colour_bluebrown_d, scale_colour_see, scale_colour_see_c, scale_colour_see_d, scale_fill_bluebrown, scale_fill_bluebrown_c, scale_fill_bluebrown_d, scale_fill_see, scale_fill_see_c, scale_fill_see_d, see_colors
  • 0.5.1
    record
    2020-06-13 · diff ↗ ·
    removed 1 export
    %>%
  • 0.5.0
    record
    2020-04-25 · diff ↗ ·
    added 1 export
    golden_ratio
  • R
    R 4.0.0 released · 2020-04-24
  • 0.4.1
    record
    2020-03-06 · diff ↗
  • 0.4.0
    record
    2020-01-15 · diff ↗ ·
    added 2 exports
    theme_radar, theme_radar_dark
  • 0.3.0
    record
    2019-11-19 · diff ↗ ·
    removed 1 export
    how_to_plot
    added 1 export
    coord_radar
  • 0.2.1
    record
    2019-08-01 · diff ↗ ·
    added 22 exports
    metro_colors, palette_metro, palette_social, scale_color_metro, scale_color_metro_c, scale_color_metro_d, scale_color_social, scale_color_social_c, scale_color_social_d, scale_colour_metro, scale_colour_metro_c, scale_colour_metro_d, scale_colour_social, scale_colour_social_c, scale_colour_social_d, scale_fill_metro, scale_fill_metro_c, scale_fill_metro_d, scale_fill_social, scale_fill_social_c, scale_fill_social_d, social_colors
  • 0.2.0
    record
    2019-06-19 · diff ↗ ·
    added 3 exports
    geom_pooljitter, geom_poolpoint, theme_lucid
  • 0.1.0
    record
    2019-05-24
  • R
    R 3.6.0 released · 2019-04-26

Package metadata

First published
2019-05-24
Total releases
38 / 7 yrs
License
MIT + file LICENSE OSI · relicensed from GPL-3 in 0.8.1
Minimum R
≥ 4.1
Download size
217 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("see")

The package provides a citation file, so citation() returns the authors' own entry.

It points to 10.21105/joss.03393.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for see version 0.15.0 [Data set]. HJJB, LLC. Data release v2026-10-25. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy