2025-08-31
- DEPRECATION NOTICE The 
runExample()
function is no longer required since {shiny} version 1.8.1 (March 2024).
You can now use
shiny::runExample("ggMarginal", package = "ggExtra")
instead of ggExtra::runExample(). (#180) 
- Removed deprecated call to ggplot2’s 
..density..
(#175) 
- Removed deprecated call to ggplot2’s 
aes_string()
(#175) 
2023-08-19
- Fixed issue where grouped boxplots and violin plots were variable
widths (#173)
 
2022-03-22
- Fix histograms to have consistent height when grouped vs ungrouped
(#151)
 
- Addin now works when called with a variable name that was also a
function (such as 
plot) (#158) 
- Addin no longer throws error messages in the console for “figure
margins too large” (#159)
 
- Allow users to pass in custom boundary or center param (#164)
 
2019-08-27
- Fix #109: using ggMarginal on a plot where geom_point was not the
first layer was buggy (#116)
 
- Add documentation about how to use ggMarginal in R Notebooks or
Rmarkdown
 
- Added support for densigram (density+histogram) plots (#118)
 
- Lots of internal refactoring (thanks @crew102)
 
- Fix the “two chunk” requirement for rendering ggMarginalPlots in Rmd
(#148)
 
2018-04-04
NEW FEATURES
- Added support for violin plots (#62)
 
- Added support for mapping colour from the scatter plot to
colour/fill in the marginal plots (#61)
 
BUX FIXES
- Make sure marginal data comes from correct data frame (#67)
 
- Fix #81: many issues when the x or y axis have custom scales applied
(#101)
 
- Fix #99: plot subtitle was in the wrong position when no title was
used (#103)
 
2017-06-21
Refactoring of
ggMarginal():
- Several of the stages that 
ggMarginal completes to
create the final plot are now broken into (more) helper functions 
- Code that uses internal ggplot2 structure works on different
versions of ggplot2
 
- Removed code that added y labels to marginal plot to deal with long
y labels as well as spacing issues
(https://github.com/daattali/ggExtra/blob/6c4923c2ad2e700226cdcdc9666de513d6ae3a41/R/ggMarginal.R#L186-L201)
 
- Removed code that set the marginal plot limits when the marginal
plot was a boxplot
(https://github.com/daattali/ggExtra/blob/6c4923c2ad2e700226cdcdc9666de513d6ae3a41/R/ggMarginalHelpers.R#L177)
 
Other features
- add visual tests
 
- add tests over different versions of ggplot2, to ensure backwards
compatibility
 
- add arguments to 
rotateTextX() 
2016-11-11
- support new ggplot2 v2.2.0 (not backwards compatible unforunately
because ggplot2 internals changed too much)
 
2016-10-03
- use 
colourpicker package instead of deprecated colour
input from shinyjs 
- bug fix: retain the title font face (#30)
 
2016-07-25
- UI improvements to shiny app
 
- add social media meta tags to shiny app
 
2016-05-29
- ggMarginal now supports plots with legends (thanks to @crew102) (#23)
 
2016-04-30
- ggMarginal addin now works on all screen resolutions (#24)
 
2016-04-24
- Remove hack required by old version of 
gridExtra 
2016-03-25
- Added an RStudio addin and gadget for creating ggplot2 marginal
plots (select ggplot2 Marginal Plots from the RStudio
Addins menu, or call
ggExtra::ggMarginalGadget(plot)) 
2015-12-14
- Small UI changes to the Shiny app demo
 
2015-11-10
- Fixed bug where using 
ggplot2::set_theme() was causing
the marginal plots to also use that theme 
2015-11-05
- Fixed bug where first and last bins of histograms were never showing
(#18)
 
- Finally tackled a long standing problem: if main plot has a title,
move the title on top of the marginal plots. An unwanted side effect of
this is that the title font size will not be retained because the title
is its own grob. (#3)
 
2015-09-02
- significant internal refactoring of 
ggMarginal to make
it work with new ggplot2 version (after version 1.0.1 ggplot2 had tons
of breaking changes) (some parts of the function use different code
depending on the version of ggplot2 installed, I hope this doesn’t raise
any bugs) 
- make 
ggMarginal a little more robust to many different
theme options so that even if the main plot changes the tick mark
lengths or x axis size or many different options, the marginal plots
will still align properly 
- add more usage examples to 
ggMarginal 
2015-08-19
- bug fix: ggMarginal now works when the original plot has expressions
as the x/y variables. For example, calling ggMarginal on a plot that had
aes(x+10, log(y)) did not work before 
2015-08-17
- simplify and remove some unneeded package checks since
grid and gridExtra should be installed
automatically 
2015-08-04
minor changes - small updates to ggMarginal demo shiny app - small
changes to ggMarginal documentation - small changes to package
DESCRIPTION
2015-07-10
- marginal plots now use the same axis transformations
(log/reverse/limits/etc) as the main plot
 
- rewrote 
ggMarginal to support the new
gridExtra package which has been completely rewritten after
2 years of inactivity 
2015-06-26
- added 
... parameter to plotCount after a
request to add a way to colour the bars 
2015-06-08
- ggMarginal: add support for boxplots
 
- ggMarginal: add 
... parameter that allows you to pass
any arguments to the corresponding ggplot2 geom layer
 
- ggMarginal: add 
xparams and yparams
parameters to pass any arguments to only the x/y marginal plot 
- BREAKING CHANGE: ggMarginal: 
marginCol
and marginFill params have been removed since
colour and fill can be provided as regular
params thanks to the ... parameter 
2015-04-21
Add a Shiny app that shows how to use ggMarginal, can be
viewed with runExample or on my Shiny Server
2015-03-28
Package is officially released to the public and is now on CRAN