| Type: | Package | 
| Title: | Scatter Plot Combined with Ridgelines in 'ggplot2' | 
| Version: | 1.1.0 | 
| Date: | 2025-09-17 | 
| Maintainer: | Matthieu Bourgery <matthieu.bourgery@gmail.com> | 
| Imports: | ggplot2, cowplot, ggridges, ggrepel, vegan, RColorBrewer | 
| Description: | The function combines a scatter plot with ridgelines to better visualise the distribution between sample groups. The plot is created with 'ggplot2'. | 
| License: | GPL-3 | 
| URL: | https://github.com/matbou85/ggScatRidges, | 
| BugReports: | https://github.com/matbou85/ggScatRidges/issues | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| NeedsCompilation: | no | 
| Packaged: | 2025-09-17 11:53:51 UTC; matt | 
| Author: | Matthieu Bourgery  | 
| Depends: | R (≥ 4.1.0) | 
| Repository: | CRAN | 
| Date/Publication: | 2025-09-17 13:50:02 UTC | 
Scatter Plot Combine with Ridgelines
Description
‘ggScatRidges' is a simple function combining a scatter plot generated in ’ggplot2' to a ridgeline plot from 'ggridges' to visualise the disparities of the data points. This helps visualising the distribution of different groups in the data.
Usage
ggScatRidges(
  x,
  y = NULL,
  xlab = NULL,
  ylab = NULL,
  title = NULL,
  xlim = NULL,
  ylim = NULL,
  group = NULL,
  color = "Set1",
  ridges = TRUE,
  base_size = 15,
  size = 2,
  pch = NULL,
  draw = TRUE,
  density_2d = TRUE,
  legend = TRUE,
  label = FALSE,
  legend.title = NULL,
  stats = FALSE,
  stats_method = "eu",
  anno_size = 6,
  anno_pos = "Up",
  text = NULL
)
Arguments
x | 
 As input data. If a dataframe was provided, the dataframe should contain no less than three columns. If no dataframe was supplied, a x vector should be set as an input. The vector should #' contain numerical values.  | 
y | 
 As input data. If no dataframe was provided, a y vector should be set as an input along with a x vector. The vector should contain numerical values.  | 
xlab | 
 To give a title for the xlab can be given here.  | 
ylab | 
 To give a title for the ylab can be given here.  | 
title | 
 To give a title for the plot can be given here.  | 
xlim | 
 To set scale limits on the xaxis.  | 
ylim | 
 To set scale limits on the yaxis.  | 
group | 
 The user should provide here the grouping of the rows if a dataframe was provided, otherwise a vector.  | 
color | 
 The user can choose from 'display.brewer.all()'. Default = "Set1".  | 
ridges | 
 The user can choose to plot, or not, the ridgelines. Default = TRUE.  | 
base_size | 
 The overall size of the text in the plot. Default = 15.  | 
size | 
 The size of the dots in the plot. Default = 3.  | 
pch | 
 The user can change the shape of the points by providing a vector length equal to the number of groups.  | 
draw | 
 If the user wants to directly draw the plot. Default = TRUE.  | 
density_2d | 
 If the user wants to add density contours around group of points on the plot. Default = TRUE.  | 
legend | 
 If the user wants to add or remove the legend. Default = TRUE.  | 
label | 
 If the user wants to add custom labels for each point. Default = FALSE.  | 
legend.title | 
 The user can provide its own title.  | 
stats | 
 If the user wants to add a permanova statistical test. Default = FALSE.  | 
stats_method | 
 The user can choose the method from 'vegan::vegdist' to calculate pairwise distances. Default = "eu.  | 
anno_size | 
 To set the font size of the statistical test results. Default = 6.  | 
anno_pos | 
 To define where the statistical test results will be displayed on the graph. Default = "Up".  | 
text | 
 The user can give a vector to add labels or directly provide it as a fourth column from a dataframe.  | 
Value
A ggplot object if draw set to 'TRUE' otherwise a grob table is returned but set to invisible.
Examples
# The following example is based on the iris dataset:
## Example 1
ggScatRidges(x = iris$Sepal.Length, y = iris$Sepal.Width, group = iris$Species,
             color = "Set3", ridges = TRUE, title = "plot iris", legend.title = "Grouping",
             xlab = "Sepal.Length", ylab = "Sepal.Width", base_size = 15, size = 2, 
             draw = TRUE, density_2d = TRUE, legend = TRUE, label = FALSE, text = NULL,
             stats = FALSE)
## Example 2
iris2 <- iris[,c(1,2,5)] #The 1st column will be used as 'x', the 2nd as 'y', and the 3rd as group.
ggScatRidges(x = iris2, 
             color = "Set2", ridges = TRUE, title = "plot iris",
             xlab = "Sepal.Length", ylab = "Sepal.Width", size = 2, draw = TRUE,
             density_2d = FALSE, legend = TRUE, label = FALSE, stats = TRUE)