Releases: kassambara/ggpubr
Releases · kassambara/ggpubr
ggpubr 0.6.0
New features
- New function
ggadjust_pvalue()
added to adjust p-values produced bygeom_pwc()
on a ggplot (#522). - New data added:
gene_expression
- Global options: New available package options:
ggpubr.null_device
, which value should be a function that creates an appropriate null device. These include:cowplot::pdf_null_device
,cowplot::png_null_device
,cowplot::cairo_null_device
andcowplot::agg_null_device
. Default iscowplot::pdf_null_device
. This is used in function likeas_ggplot()
, which needs to open a graphics device to render ggplot objects into grid graphics objects. This function is used to open null device for avoiding the display of unnecessary blank page when callingggarrange()
oras_ggplot()
(#306 and #158). The default option can be changed using, for example,options(ggpubr.null_device = cowplot::png_null_device)
.
Major changes
gadd()
: Restoring back random state after setting seed when adding jittered points. To do so, the seed number is just passed toposition_jitter()
andposition_jitterdodge()
, which preserve the initial random state ( #177 and #349) .ggpubr
requires now a version ofggrepel >= 0.9.2.9999
, which restores now the initial random state after set.seed(). see slowkow/ggrepel#228ggpubr
requires now a version ofcowplot >= 1.1.1
Minor changes
ggtexttable()
: doc updated with another example; text justification for individual cells/rows/columns (#335).ggpie()
: setting the default ofclip = "off"
incoord_polar()
so thatggpie()
does not crop labels (#429)as_ggplot()
: using null_device to avoid blank page #306 and #158ggarrange()
: using null_device to avoid blank page #306 and #158- Indexing variable in a data frame: using df[[x]] instead of df[, x] to make sure that the result is a vector even if the
df
is a tibble. ggexport()
: support added for graphics device svg (#469)ggpie()
andggdonutchart()
now fully reacts to the optionlab.font
(#502)- Replacing deprecated
gather_()
in both internal (.check_data()
) and exported functions (compare_means()
) (#513) stat_compare_means()
: The dot-dot notation (..p.signif..
) was deprecated in ggplot2 3.4.0;after_stat(p.signif)
should be used; updated so that..p.signif..
is automatically converted intoafter_stat()
format without warning for bacward compatibility.- Enable faceting by column names with spaces (#391)
- Licence changed to GPL (>= 2) (#482)
desc_statby()
doc updated to clarify the difference between SD (standard deviation) and SE (standard error) (#492)- The message
geom_smooth() using formula 'y ~ x'
is now turned off inggscatter()
(#488)
Bug fixes
ggtext()
: fix warning "filter_()
was deprecated in dplyr 0.7.0".ggqqplot()
: the argumentconf.int
is taken into account now when specified (#524).ggqqplot()
: Fixing the warning: "The following aesthetics were dropped during statistical transformation: sample" (#523)- Requiring
rstatix v >=0.7.1.999
for preserving factor class inemmeans_test()
(#386) ggmaplot()
: Suppressing ggmaplot warning: Unlabeled data points (too many overlaps). Consider increasing max.overlaps (#520)compare_means()
: works now when the grouping variable levels contain the key words group2 or group1 (#450)ggparagraph()
: fixing bug about minimum paragraph length (#408)ggexport()
: the verbose argument is now considered when specifyed by user (#474)
ggpubr 0.5.0
New features
- New functions
stat_anova_test()
,stat_kruskal_test()
,stat_welch_anova_test()
,stat_friedman_test()
andgeom_pwc()
added. These are flexible functions to add p-values onto ggplot with more options. The functiongeom_pwc()
is for adding pairwise comparisons p-values to a ggplot; supportted statistical methods include "wilcox_test", "t_test", "sign_test", "dunn_test", "emmeans_test", "tukey_hsd" and "games_howell_test". - New functions to convert character vector coordinates into NPC (normalized parent coordinates) and data coordinates:
as_npc()
,npc_to_data_coordinates()
andget_coord()
. - Global options:
- New function
ggpubr_options()
to display allowed global options in ggpubr - New available package options:
ggpubr.parse_aes
. logical indicating whether to parse or not the aesthetics variables names. Default isTRUE
. For example, if you want ggpubr to handle non-standard column names, like A-A, without parsing, then set this option to FALSE usingoptions(ggpubr.parse_aes = FALSE)
.
- New function
Minor changes
- Minimum rstatix version needed is set to 0.7.1
- Minimum ggplot2 version needed is set to 3.4.0
stat_conf_ellipse
: ensure stat returns a data.frame for compatibility with ggplot2 v>=3.4.0stat_compare_means()
:- Unit tests added
- Updated to use
after_stat(p.signif)
as the dot-dot notation (..p.signif..
) was deprecated in ggplot2 3.4.0 (#509).
ggdensity()
andgghistogram()
: dot-dot notation (..density..
,..count..
) replaced byafter_stat(density)
andafter_stat(count)
, respectively for compatibility with ggplot2 3.4.0.create_aes()
:- Arguments (
digits
andtable.font.size
) added toggsummarystats()
for changing the summary table decimal place and text size (#341). - In
stat_pvalue_manual()
the argumenthide.ns
can be either a logical value (TRUE or FALSE) or a character value ("p" or "p.adj" for filtering out non significant by p-value or adjusted p-values). - Now, the x-axis tick label names correctly align with the corresponding ticks when the rotation angle of the texts is set to 90. This is automatically achieved by setting internally
vjust = 0.5
(#301). Capital NS.
is no longer displayed bystat_compare_means()
(#171)- Unit tests added for
ggshistogram()
to make sure that it works when:- using
after_stat()
, - using after_stat() with trailing space inside parentheses.
- using
- Unit tests added for
ggscatter()
to make sure that:- it works when there is spaces in variable names
- it can handle non-standard column names when
ggpubr.parse_aes
global option is set to FALSE (#229)
ggpubr 0.4.0
New features
- New functions added to customize
ggtexttable()
(#125, #129 and #283):tab_cell_crossout()
: cross out a table cell.tab_ncol(), tab_nrow()
: returns, respectively, the number of columns and rows in a ggtexttable.tab_add_hline()
: Creates horizontal lines or separators at the top or the bottom side of a given specified row.tab_add_vline()
: Creates vertical lines or separators at the right or the left side of a given specified column.tab_add_border(), tbody_add_border(), thead_add_border()
: Add borders to table; tbody is for table body and thead is for table head.tab_add_title()
andtab_add_footnote()
to add titles and footnotes (#243).
- ggpubr functions updated to handle non-standard column names, for example ("A-A") (#229).
- New function
create_aes()
added to create aes mapping from a list. Makes programming easy with ggplot2 (#229). - New argument
coord.flip
added to support adding p-values onto horizontal ggplots (#179). When adding the p-values to a horizontal ggplot (generated usingcoord_flip()
), you need to specify the optioncoord.flip = TRUE
. - New errorbar functions -
median_hilow_()
andmedian_q1q3()
- added (@davidlorenz, #209):median_hilow_()
: computes the sample median and a selected pair of outer quantiles having equal tail areas. This function is a reformatted version ofHmisc::smedian.hilow()
. The confidence limits are computed as follow:lower.limits = (1-ci)/2
percentiles;upper.limits = (1+ci)/2
percentiles. By default (ci = 0.95
), the 2.5th and the 97.5th percentiles are used as the lower and the upper confidence limits, respectively. If you want to use the 25th and the 75th percentiles as the confidence limits, then specifyci = 0.5
or use the functionmedian_q1q3()
.median_q1q3()
: computes the sample median and, the 25th and 75th percentiles. Wrapper around the function median_hilow_() using ci = 0.5.
- New function
get_breaks()
added to easily create breaks for numeric axes. Can be used to increase the number of x and y ticks by specifying the optionn
. It's also possible to control axis breaks by specifying a step between ticks. For example, if by = 5, a tick mark is shown on every 5 (@Chitanda-Satou, #258).
Major changes
- The following enhancement has been added to
ggscatterhist()
(@juliechevalier, #176):- the output of
ggscatterhist()
is now a list of ggplots, containing the main scatter plot (sp
) and the marginal plots (xplot
andyplot
), which can be customized by the end user using the standard ggplot verbs - An S3 printing method is now available for an object of class ggscatterhist. The printing method displays the arranged final figure.
- the output of
Minor changes
- Now, when creating a box plot with error bars, color and fill argiments are taken into account in the errorbar function (#105).
- New argument
alternative
supported instat_cor()
(#276). - New argument
position
inggline()
to make position "dodged" (#52). - New argument
outlier.shape
in ggboxplot(). Default is 19. To hide outlier, specify outlier.shape = NA. When jitter is added, then outliers will be automatically hidden. - Sorting can be now disabled in
ggdotchart()
using the optionsorting = "none"
(#115, #223). - New argument
weight
added ingghistogram()
for creating a weighted histogram (#215) - Now
ggscaterhist()
takes into account the argumentposition
inmargin.params
when marginal plot is a histogram (#286). ggbarplot()
enhanced to better handle the creation of dodged bar plots combined with jitter points (@aherholt, #176)- New argument
bracket.shorten
added instat_pvalue_manual()
andgeom_bracket()
. a small numeric value in [0-1] for shortening the with of bracket (#285). - New argument
bracket.nudge.y
added instat_pvalue_manual()
andgeom_bracket()
. Vertical adjustment to nudge brackets by. Useful to move up or move down the bracket. If positive value, brackets will be moved up; if negative value, brackets are moved down (#281). - New argument
numeric.x.axis
added inggerrorplot()
; logical value, If TRUE, x axis will be treated as numeric. Default is FALSE (#280). - The option
width
is now considered inggadd()
for plotting error bars (#278). - New argument
linetype
inggpaired()
. geom_exec()
used inggpaired()
to add lines between paired points.ggmaplot()
now supports two input formats (#198):- baseMean | log2FoldChange|padj: Here, we'll use log2(baseMean) as the x-axis variable
- baseMeanLog2 | log2FoldChange|padj: here, baseMeanLog2 is assumed to be the mean of logged values; so we'll use it as x-axis variable without any transformation.
- new arguments added in
ggmaplot()
:alpha
for controlling point transparency/density (@apcamargo, #152).label.select
to select specific genes to show on the plot (@apastore, #70)
- In
ggadd()
thefill
argument is considered for jitter points only when the point shape is in 21:25 (@atakanekiz, #148). - New argument
parse
added inggscatter()
and inggtext()
. If TRUE, the labels will be parsed into expressions and displayed as described in ?plotmath (#250). - New argument
stroke
supported inggscatter()
and inggline()
. Used only for shapes 21-24 to control the thickness of points border (@bioguy2018, #258). - the
stat_cor()
function code has been simplified. New argumentsp.accuracy
andr.accuracy
added; a real value specifying the number of decimal places of precision for the p-value and the correlation coefficient, respectively. Default is NULL. Use (e.g.) 0.01 to show 2 decimal places of precision (@garthtarr, #186, @raedevan6, #114, #270).
Bug fixes
annotate_figure()
manual updated to show how to use of superscript/subscript in the axis labels (#165).ggtextable()
now supports further customization when theme is specified (#283).- the argument
font.family
is now correctly handled byggscatter()
(#149) ggpar()
arguments are correctly applied usingggpie()
(#277).ggscatter()
: Whenconf.int = FALSE
, fill color is set to "lightgray" for the regression line confidence band (@zhan6073, #111).- Now,
gghistogram()
supports the paramteryticks.by
(@Chitanda-Satou, #258).
ggpubr 0.3.0
New features
- New functions:
ggsummarystats()
to create a GGPLOT with summary stats table under the plot ( #251).clean_table_theme()
to clean the the theme of a table, such as those created byggsummarytable()
ggbarplot()
now supports stacked barplots with error bars (#245).
Minor changes
- New arguments:
vjsut
instat_compare_means()
to move the text up or down relative to the bracket.type
ingeom_bracket()
to specify label type. Can be "text" or "expression" (for parsing plotmath expression); #253.labeller
to the functionfacet()
position
inget_legend()
to specify legend positionlegend.grob
inggarrange()
to specify a common legend you want to add onto the combined plot.
- Maintenance adaptation to dplyr new version by removing deprecated functions, such as group_by_, select_, arrange_, etc
Bug fixes
- Now, Barplots are correctly labelled when custom labels are specified by users (@sekharcu, #234)
ggpubr 0.2.5
Minor changes
- New arguments
cor.coef.name
in the functionstat_cor()
. Can be one of "R" (pearson coef), "rho" (spearman coef) and "tau" (kendall coef). Uppercase and lowercase are allowed (@andhamel, #216). - New arguments
digits, r.digits, p.digits
in the functionstat_cor()
. Integer indicating the number of decimal places (round) or significant digits (signif) to be used for the correlation coefficient and the p-value (@raedevan6, #216). compare_means()
adapted to tidyr v>= 1.0.0 by specifying cols in the unnest() function (@Youguang, #216).
ggpubr 0.2.4
Minor change
- unnest adapted to tidyr 1.0.0
stat_pvalue_manual()
can now handle an rstatix test result containing only one group column.
v0.2.3
New features
- New function
stat_central_tendency()
to add central tendency measures (mean, median, mode) to density and histogram plots - New function
stat_overlay_normal_density()
to overlay normal density plot (with the same mean and SD) to the density distribution of 'x'.
Minor changes
- The option
exact = FALSE
is no longer used when computing correlation instat_cor()
(@tiagochst, #205)
Bug fixes
ggpie()
keeps now the default order of labels (@WortJohn, #203)
ggpubr 0.2.2
New fatures
- New function
geom_bracket()
for adding brackets with label annotation to a ggplot. Helpers for adding p-value or significance levels to a plot.
Minor changes
compare_means()
has been adapted to tidyr v1.0.0 (@jennybc, #196)geom_exec()
now handlesgeom_bracket()
arguments- New arguments
vjust
,hide.ns
,step.increase
,step.group.by
,color
andlinetype
added instat_pvalue_manual()
stat_pvalue_manual()
can now guess automatically the significance label column.- New argument
show.legend
added toggadd()
andadd_summary()
functions.
Bug fixes
ggpubr 0.2.1
Minor changes
- New arguments
step.increase
added instat_compare_means()
to avoid overlap between brackets. - In
stat_pvalue_manual()
x axis variable is no longer automatically converted into factor. If your x variable is a factor, make sure that it is converted into factor. stat_pvalue_manual()
can automatically handle the output of rstatix testsggbarplot()
andggviolin()
now automatically create error bars by groups when users forget the optionadd.params = list(group = )
(#183).- Now,
ggarrange()
works when eitherncol = 1
ornrow = 1
(@GegznaV, #141. - When method = "wilcox.test", the function
compare_means()
set automatically the optionexact = FALSE
. This is no longer the case (@stemicha, #141. stat_pvalue_manual()
now supports dodged grouped plots (@emcnerny, #104).- the argument
position
is now handled byggdotplot()
(@Adam-JJJJJ, #178)
Bug fixes
- Adding points works now for barplots grouped by fill color (@elenichri)
label.sep
argument works now inggscatter()
andstat_cor()
(@sbbmu, #150)- Fix in
ggscatter()
to avoid freezing when theadd
argument is incorrect (@atakanekiz, #135).
ggpubr 0.2
Bug fixes
- P-value for multiple comparisons by group (stat_compare_means()) are now correctly displayed (@elisheva100, #135).