gramm data visualization toolbox

gramm is a powerful and full-featured plotting and visualization toolbox similar to ggplot2 or seaborn
13.4K Downloads
Updated 10 Jul 2024

Editor's Note: This file was selected as MATLAB Central Pick of the Week

Cite As

Morel, Pierre. “Gramm: Grammar of Graphics Plotting in Matlab.” The Journal of Open Source Software, vol. 3, no. 23, The Open Journal, Mar. 2018, p. 568, doi:10.21105/joss.00568.

View more styles
MATLAB Release Compatibility
Created with R2023b
Compatible with R2018a and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
3.0.0

See release notes for this release on GitHub: https://github.com/piermorel/gramm/releases/tag/v3.0.0

2.27.1

See release notes for this release on GitHub: https://github.com/piermorel/gramm/releases/tag/v2.27.1

2.27

See release notes for this release on GitHub: https://github.com/piermorel/gramm/releases/tag/v2.27

2.26

Switching to new github integration

2.25

Added full tab auto-complete for arguments and options with functionSignatures.json

2.24.2.0

Updated description

2.24.0.0

- Added JOSS paper and DOI information
- Fixed set_datetick() behavior

2.23.0.0

Preparation for JOSS submission

2.22.0.0

Added set_layout_options() allowing to fully customize figure layout in gramm

2.21.0.0

Corrected bug in geom_bar() when used with the 'stacked' option

2.20.0.0

- Overhaul of legend and colormap support
- Allows for non LCH luminance/color colormaps
- Added new built-in colormaps
- Added new legend options

2.19.0.0

Added toggles for row/column labels, improved handling of empty subsets

2.18.0.0

- Added more customization options to geom_bar
- Fixed automatic continuous colors
- Various fixes

2.17.0.0

Gramm now merges color and marker/size/linestyle legend if they are the same

2.16.0.0

- Added continuous color support to 3D lines and points
- Added colorbrewer license file

2.15.0.0

- Possibility to set ‘CLim’ in set_continuous_color() in order to force color limits.
- Fixed bug on continuous colors when a unique value was provided
- Documentation updates

2.14.0.0

Added geom_polygon() method to add custom polygons on plots

2.13.0.0

- Improved graphic fixes for old matlab versions
- Updated geom_abline() , geom_vline(), geom_hline() functions
- Bug fixes
- Added missing documentation

2.12.0.0

- Added export() method
- Added 'interpreter' to set_text_options()

2.11.0.0

Added coord_flip(), which can be used to generate horizontal box plots, violin plots, error bars, etc.

2.10.1.0

- Added the possibility to provide a custom function to stat_summary()
- Removed unnecessary computation when stat_smooth() was used with default options (2x speedup!)

2.10.0.0

- stat_smooth() now provides more smoothing algorithms, better documentation and more conservative CI estimates
- Enhancements and better documentation for set_order_options()
- Bug fixes in edge cases (empty elements in cells, etc.)

2.9.0.0

- Added fig() function to separate data across figures
- Improved copy() behavior

2.8.2.0

Corrected bug in stat_summary() polar interpolation when x data didn't start at zero radians. Added safety checks.

2.8.1.0

- Corrected absence of y ticks if single facet when using facet_wrap()
- Corrected behavior of stat_cornerhist() when ‘DataAspectRatio’ is set to [1 1 1] using axe_property()

2.8.0.0

Added 'alpha' option to geom_point(), geom_jitter() and geom_line()

2.7.0.0

- Added geom_label() to plot text
- Added additional examples
- Modified continuous color legend

2.6.0.0

- Added set_stat_options() to specify alpha level and N bootstrap samples in all stat_ functions
- Added 'viridis' colormap
- Default confidence interval in stat_summary is now corrected for normal distributions with small N
- Other improvements

2.5.0.0

Added customization options for text, lines and points:
- Added set_line_options(): style, size
- Added set_point_options(): markers, size
- Added set_text_options(): font, sizes
- Corrected bug with iscategorical() on old matlab versions

2.4.0.0

- Added corner histogram of x-y difference stat_cornerhist()
- Improved speed on large datasets with many non-unique x values

2.3.1.0

- Added notch option to stat_boxplot()
- Corrected bug in stat_ellipse() for 2014a and earlier versions

2.3.0.0

- Added stat_violin() to create violin plots
- BETA of stat_cornerhist to plot an histogram of the x-y difference in an inset axis (has an intermittent sizing bug).

2.2.3.0

Added functionality to edit legend axes

2.2.2.0

- Corrected rare error on y limit computation
- Simplified code in draw()
- Changed thumbnail

2.2.1.0

Corrected error with geom_line() and 3D data

2.2.0.0

- Represent user-provided confidence intervals with geom_interval()
- Improved dodging: now takes in account the number of colors per x values
- Dodging supported in additional geom_ methods
- Improved geom_bar() stacking

2.1.1.0

- Corrected errorbar thickness
- Improved update() behavior

2.1.0.0

- Added set_parent() method
- Improved dodging for categorical x
- Improved update() behavior

2.0.1.0

Updated description

2.0.0.0

- Full refactor from a single file to a @gramm class folder
- examples.m is now a proper how-to and can be published
- With the update() method, use different groupings for different layers
- Support for categorical variables in faceting

1.16.1.0

Corrected stat_summary() to prevent erroneous line/area interruptions

1.16.0.0

- Added 'space' option to facet_grid()
- Updated examples and Readme

1.15.0.0

- Improved legend layout
- Harmonized 'width' and 'dodge' arguments
- Improved stat_summary() behavior for missing elements
- Optimizations

1.14.1.0

- Changed Picture

1.14.0.0

- ‘z’ input data in gramm() creates 3D plots when using geom_point() or geom_line()
- Corrected bugs in box plot and corrected whisker length
- Added possibility to superimpose gramm plots
- Corrected support for categorical data

1.13.0.0

Added possibility to set a global title with set_title()

1.12.2.0

Description correction

1.12.1.0

Added simpler way to set ordering with set_order_options()

1.12.0.0

- Added set_order_options()
- Added ‘map’ option to set_color_options()
- Customization functions can be called on arrays of gramm objects
- Bug fixes

1.11.0.0

Added box and whiskers plots, Quantile-Quantile plots
Other modifications and corrections (see Github: https://github.com/piermorel/gramm/commit/6ae9fcd96876c375d9148dd6d64660597a9538bd )

1.10.0.0

Added cheat sheet, added geom_funline(), added 'dodge' option to stat_summary()

1.9.0.0

- Results from stat_ plots are now returned in the results member structure.
- Corrected bugs with pre 2014b versions

1.8.0.0

Changing manually the limits (using pan or zoom) of a facet in a gramm generated figure will now automatically change the scale of the other facets according to the ‘scale’ facet preferences

1.7.0.0

- Added stat_fit() for custom fits (requires curve fitting toolbox)
- Added more generic ‘fill’ options to stat_bin()
- stat_bin() and stat_density() now behave when using polar plots
- Added documentation
- Reduced clutter
- Added examples

1.6.0.0

Plenty of new features (separation by lightness, confidence ellipses, color options, geom_hline, geom_vline)

1.5.1.0

Bug corrrection

1.5.0.0

Enhancements and bug fixes for continuous colors, which can now be forced and customized using set_continuous_color()

1.4.0.0

Added ‘edges’ option for custom bins to stat_bin2d() and stat_bin()
Added ‘bar_color’ and ‘bar_spacing’ options, ‘overlaid_bar’ geom to stat_bin()
Now possible to set multiple properties at once in axe_property()
Corrected behavior of facet scaling

1.3.0.0

Greatly improved geom_raster() speed when used with option 'geom','line'

1.2.0.0

Additional usage examples

1.1.0.0

Corrected set_datetick() issue, corrected initialization of faceting variables

1.0.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.