Releases: ashenoy-cmbi/grafify
Version 4.0.1
grafify v4.0.1
This is a minor update to fix tests that were failing after an update to ggplot2
to version 3.5.0.
Version 4.0
grafify v4.0
The reason this is a major update is that now ggplot2
version 3.4.0 or higher is required to avoid errors with grafify
. The main difference is that size
argument for line widths has been updated to linewidth
.
Major updates
-
It is easier to plot 2-way ANOVA designs with or without blocking factors in this version with the following updates. There are two new
plot_...
functions for 1-way and 2-way designs.a.
plot_4d_
functions can now plot 2-way ANOVAs even if theshapes
argument is not provided. Graph is plotted withshape = 21
as default.b.
plot_4d_point_sd
andplot_3d_point_sd
functions for plotting 2-way and 1-way ANOVAs without or with blocking factors as mean and SD/SEM/CI95 error bars.
Minor updates
- Fixed the double
{{
intheme_grafify
. - Added
hjust
andvjust
arguments totheme_grafify
to adjust text alignment when angles are changed. - Several tests were rewritten to comply with
ggplot2
update.
Version 3.2.0
grafify v3.2.0
Major updates
-
theme_grafify
updates:a.
lineend = square
as default for better-looking origin
b. transparent backgrounds throughout the plot
c. this theme is now applied to allgrafify
plots by default
d. all text size on the graph is now the same as thebasesize
(default 20) -
New arguments in violin plots (
plot_dotviolin
,plot_scatterviolin
,plot_3d_scatterviolin
andplot_4d_scatterviolin
): two separate argumentsbthick
andvthick
to set the line widths of the boxes and violins, respectively. The previousbvthick
will still work, so if a value is provided that will be used for line widths of both boxes and violins. -
New argument for two-way ANOVA graphs (
plot_4d_
): thegroup_wid
can be used to change the space between groups along the X-axis (i.e., dodge width). Defaultgroup_wid = 0.8
will produce graphs that look similar to those in previous versions ofgrafify
. Ifgroup_wid
is set to 0, there will be no dodging of the factors along X-axis. -
New arguments in before-after plots (i.e.,
plot_befafter_
):bthick
andlthick
arguments can change line and box line widths independently.
Minor updates
- For consistency, the default width (
bwid
argument) of bars and boxes inplot_4d_
functions is set as0.7
. - Parts of code rewritten for many plot functions to make them shorter and simpler.
log10
tick marks:
a. In allplot_
functions: the tick marks now scale with thefontsize
parameter. Previously, the sizes were set to "cm" units, which did not scale correctly. The long tick mark, middle and short ticks are sized:7*fontsize/22
,4*fontsize/22
and4*fontsize/22
, respectively (note that the short and mid are the same size). The size (line width) equalsfontsize/22
, which is the same throughoutgrafify
.
b. For consistency and usefulness, theplot_logscales
function also has the above defaults and now hasfontsize = 20
as an additional argument and sizes scale accordingly.
c. Colour oflog10
tick marks have the same colour as ticks on non-transformed axis (grey20
).
Version 3.1.0
grafify v3.1.0
New functionalities
plot_point_sd
now allows all data points to be shown. All points will be plotted withgeom_point
if theall_alpha
setting (opacity for all symbols) is set >0 (it is set to 0 so default graphs will only show the mean of all values). There are also options forall_size
andall_jitter
to adjust size and overlap.- SD, SEM or CI95 error bars are now possible through the
ErrorType
argument (default is "SD" error bars) inplot_dotbar_sd
,plot_scatterbar_sd
,plot_point_sd
,plot_3d_scatterbar
andplot_4d_scatterbar
.
Minor updates
- Y-axis labels fixed for
plot_lm_predict
which used to label Y-axis aspred
rather than the correct name of the plotted variable. - Fixed the example for
theme_grafify
. - Re-written
plog_qqline
based onstat_qq
andstat_qqline
. - Also re-written
plot_histogram
which was throwing up warning messages afterggplot2
update. For uniformity with othergrafify
graphs, histograms now have a black border (like symbol borders in dot/scatter plots). groups
argument, which was deprecated several versions before, has been removed from before-after functions.plot_bar_sd
deprecated as similar graphs can be plotted withplot_scatterbar_sd
withs_alpha = 0
.- Fixed an error in
scale_colour_grafify
, which broke in v3.0.0. SingleColour
argument can now take base R colour names (e.g., "grey25") in addition to previously available options.plot_grafify_palette
can now also plot the quantitative colour schemes.
Version 3.0.0
grafify v3.0.0
Major updates
This is a major update for grafify
, which now provides wrappers for basic generalised additive models (gam
) through the mgcv
package. There are a more plot_
functions, a grafify
theme for ggplot
objects, and simple data wrangling before plotting.
Major additions
-
Fit generalised additive models (gam) and get ANOVA tables with two new functions:
ga_model
andga_anova
. These are mainly for time-series analyses or where an assumption of linear relationship between predictor and outcomes is absent straight lines are not appropriate. Factor-wise smooths are fit with theby
argument inmgcv
, without or with a random factor. Random factors are also allowed with smoothre
smooth. See documentation formgcv
smooths. Model diagnostics can be done withplot_qq_gam
andplot_qq_model
. Example data included asdata_zooplankton
is from Lathro RC, 2000. -
All
plot_
functions now have two major updates:
a. Log-transformation of axes: Axes can be transformed with log10
or log2
with LogYTrans
and LogXTrans
arguments. X axis transformations are only available for plot_xy_CatGroup
and plot_xy_NumGroup
. With log10
transformation, log-ticks will also appear. Default axes limits and labels should work in most cases, but if needed, three additional arguments are available: LogYBreaks
, LogYLimits
and LogYLabels
(and respective ones for the X axis).
b. facet
argument to add another variable to created faceted plots with the facet_wrap
layer in ggplot2
. A related argument facet_scales
can be used to set Y or X axis scales on faceted panels.
- New plot functions:
a. plot_befafter_box
is a new before-after plot function that includes a box and whisker plot to show data distribution in addition to lines joining matched data. In addition, both plot_befafter_colour
and plot_befafter_shapes
offer a box and whiskers summary of data.
b. plot_lm_predict
and plot_gam_predict
can be used to plot observed (raw) data and predicted data from fitted linear models.
c. plot_logscales
is a function to easily perform "log10" or "log2" transformation on X or Y axes of any ggplot2
object along with log-ticks.
- Table manipulations:
a. table_x_reorder
is a function to reorder levels within a categorical variable. This uses factor
from base R stats
package to convert a column into a factor and reorders it based on a user-provided vector of group names.
b. table_summary
is a wrapper around aggregate
(base R) function, which gives mean, median, SD, and counts grouped by one or more variables.
- A
grafify
theme forggplot2
:theme_grafify
is a modification oftheme_classic
for making publication-readygrafify
-like graphs easily when usingggplot2
.
Minor changes
Much of the code has been edited and cleaned up. Among the main change is dropping unnecessary double curly brackets {{ }}
within plot_
wrappers.
Version 2.3.0
grafify v2.3.0
The main motivation behind this update was to simplify the package by reducing the number of exported functions. So some features that were previously in separate functions have been made available more easily via an additional argument to existing functions (e.g. single colour function (plot_..._sc
) now offered in respective plot_
function with a new argument (see below). This has uncluttered the namespace of grafify
. Most of the other additions are related to colour schemes.
Major additions
-
A new
SingleColour
argument has been added to two-variablesplot_
functions to generate graphs with a single colour along the X-axis aesthetic. This means the 8plot_..._sc
functions introduced in v1.5.0 are deprecated, but this feature is still retained in existingplot_
functions. This option also added toplot_3d_
functions for plots of one-way ANOVA data. -
Four new colourblind-friendly categorical colour schemes (chosen from cols4all package):
fishy
,kelly
,r4
,safe
- Four new quantitative schemes for continuous or divergent colours.
- sequential/continuous:
blue_conti
,grey_conti
- divergent:
OrBl_div
,PrGn_div
All schemes also available through scale_fill..
and scale_colour_...
calls to be used on any ggplot2
object.
scale_fill_grafify
andscale_colour_grafify
(orscale_color_grafify
) have been rewritten. These have two new arguments that offer features previously inscale_fill_grafify2
/scale_colour_grafify2
/scale_color_grafify_c
andscale_fill_grafify_c
/scale_colour_grafify_c
/scale_color_grafify_C
scale functions. These 6 functions are now deprecated to reduce exported namespace.
The new arguments are discrete
(logical T/F) to select discrete or continuous palettes, and ColSeq
(logical T/F) to pick sequential or distant colours from a chosen palette.
Minor changes & bug fixes
- Fixed the error in legend title in one-way ANOVA plots with
plot_3d_
that incorrectly referred toxcol
andshapes
arguments. - Fixed the error that led to depiction of different shapes in
plot_3d_scatterviolin
as compared to the other twoplot_3d_
functions. posthoc_Trends...
functions rewritten withstats::model.frame()
to get model data frame as this is a more flexible method.- Order of colours in
light
,bright
andmuted
schemes changed slightly for better separation of colours when next to each other. - The
jitter
setting inplot_scaltter_
is set to0.2
so the graph as plotted with jitter by default. - The default colour scheme for all graphs is now
okabe_ito
(theall_grafify
palette is was just a concatenation of all palettes without real basis in good visualisation). Use one of the other palettes if more than 8 colours are needed (e.g.kelly
, which has 20 discreet colours).
Release v2.2.0
grafify v2.2.0
New features
plot_3d_scatterviolin
and plot_4d_scatterviolin
for one-way or two-way ANOVA design data to plot scatter plots with violins with box and whiskers.
Minor fixes
plot_qqmodel
no longer relies on broom.mixed
; instead uses rstudent
from the base stats
package to generate studentized residuals from a model.
Version v2.1.0
grafify v2.1.0
New features
New experimental functions to compare slopes of linear regression via posthoc_Trends_Pairwise, posthoc_Trends_Levelwise and posthoc_Trends_vsRef.
Minor fixes
Minor changes to plot_qqmodel and plot_qqline to fix some OS-specific errors. QQ plots by default will have ok_orange colour within symbols when only one level is present within group. Both functions now use geom_qq and geom_qq_line (instead of stat_qq and stat_qq_line) internally.
Version v2.0.0
grafify v2.0.0
This is a major update with some new features, bugfixes, and further cleaning up of code with consistent names of arguments in preparation for CRAN submission. Some previous code may not work because of renaming of some arguments for grouping variables in plot_
functions. But older arguments are retained with deprecation warnings in most cases, so old code should largely work.
New features:
a. plot_
functions have a new argument ColSeq
(logical TRUE/FALSE) that picks colours sequentially from palette chosen by ColPal
when TRUE
(default). If set to FALSE
, the most distant colours are chosen, as already implemented in scale_..._grafify2
functions.
b. Violin plots get a major face-lift with a box-whiskers plot on top of the violin. This gives a clearer picture of data and dispersion than the default quantile lines in geom_violin
. They also get new arguments to set thickness of lines (bvthick
) and transparency of boxplots (b_alpha
).
c. There are new functions for fitting linear models with varying slopes and intercepts. These are mixed_model_slopes
and mixed_anova_slopes
.
d. A function for comparing slopes of linear fits posthoc_Trends
implements the emmeans::emtrends
call.
e. Most plot_
functions now have the ...
argument forwarding dots for advanced users to add arguments to ggplot
geometries where necessary.
f. New plot_grafify_palette
function that helps quickly visualise colours in palettes along with their names and hexcodes.
g. plot_bar_sd
and plot_bar_sd_sc
have a new argument bthick
to adjust the thickness of lines of the bars.
Bug fixes
a. Distribution plots: the The Group
grouping argument in plot_density
, plot_histogram
and plot_qqline
is now called group
for consistency with other plot_
functions.
c. The Factor
argument in post-hoc comparisons functions (posthoc_Pairwise
, posthoc_vsRes
, and posthoc_Levelwise
) renamed as Fixed_Factor
to be consistent with mixed_model
, simple_model
, mixed_anova
and simple_anova
functions.
d. The plot_3d_scatterbar
and plot_3d_scatterbox
now correctly plot one-way ANOVA designs with randomised blocks with shapes
mapped to levels of the random factor, and xcol
as the grouping factor as originally intended but incorrectly implemented. This complements plot_4d_scatterbar
and plot_4d_scatterbox
which take two grouping factors and a random factor.
e. Examples in help files have arguments explicitly labelled to make them easier to follow.
f. groups
in before-after plots is now called match
as it is a bit more informative when showing matched data.
g. For consistency, the argument for controlling opacity in distribution plots is renamed c_alpha
in plot_density
and plot_histogram
(for colour opacity of colours under the density curve or histogram); opacity of symbols in plot_qqline
is still called s_alpha
.
v1.5.1
v1.5.1
This update fixes and cleans up code to remove all errors, warnings and notes from devtools::check()
. All previous code should still work.
a. The main update is that broom.mixed::augment
is used to get model residuals than the fortify
method as this will be deprecated soon. The broom.mixed
package therefore required.
b. The way ANOVA table is generated no longer relies on an internal function from lmerTest
, but instead forces a mixed model object as lmerModLmerTest
object to get F and P values in ANOVA tables from the stats::anova
call.
c. The magrittr
package is required for internal use of pipes (%>%
).
d. Much of the code for simple_model
and mixed_model
was cleaned up so that model outputs are as close to objects generated by native calls to lm
or lmer
.
e. Several internal functions related to the colour palettes have now been exported as this was easier.
f. The make_1w_rb_data
and make_2w_rb_data
functions have been updated to have consistent factor and level names.