Creates a scatterplot of cell-group proportions against a continuous covariate,
optionally overlaying the posterior predictive trend from the fitted model.
Use this visualisation when the factor of interest is numeric; for discrete
factors prefer sccomp_boxplot().
Usage
sccomp_scatterplot(
.data,
factor,
significance_threshold = 0.05,
remove_unwanted_effects = FALSE
)Arguments
- .data
A tibble containing the results from
sccomp_estimateandsccomp_test, including the columns: cell_group name, sample name, read counts, factor(s), p-values, and significance indicators.- factor
A character string specifying the continuous covariate of interest included in the model.
- significance_threshold
A numeric value indicating the threshold for highlighting significant cell-groups. Defaults to 0.05.
- remove_unwanted_effects
A logical value indicating whether to remove unwanted variation from the data before plotting. Defaults to
FALSE.
Value
A ggplot object representing the scatterplot of cell proportions
against the continuous covariate, faceted by cell group.
References
S. Mangiola, A.J. Roth-Schulze, M. Trussart, E. Zozaya-Valdés, M. Ma, Z. Gao, A.F. Rubin, T.P. Speed, H. Shim, & A.T. Papenfuss, sccomp: Robust differential composition and variability analysis for single-cell data, Proc. Natl. Acad. Sci. U.S.A. 120 (33) e2203828120, https://doi.org/10.1073/pnas.2203828120 (2023).
Examples
print("cmdstanr is needed to run this example.")
#> [1] "cmdstanr is needed to run this example."
# Note: Before running the example, ensure that the 'cmdstanr' package is installed:
# install.packages("cmdstanr", repos = c("https://stan-dev.r-universe.dev/", getOption("repos")))
# \donttest{
if (instantiate::stan_cmdstan_exists()) {
data("seurat_obj")
estimate <- sccomp_estimate(
seurat_obj,
formula_composition = ~ continuous_covariate,
formula_variability = ~ 1,
sample = "sample",
cell_group = "cell_group",
cores = 1
) |>
sccomp_test()
# Plot proportions against the continuous covariate
sccomp_scatterplot(
.data = estimate,
factor = "continuous_covariate",
significance_threshold = 0.05
)
}
#> Loading required namespace: SeuratObject
#> sccomp says: count column is an integer. The sum-constrained beta binomial model will be used
#> sccomp says: estimation
#> sccomp says: model design matrices
#> composition X: 2 parameters: (Intercept), continuous_covariate
#> variability Xa: 1 parameter: (Intercept)
#> random effects: none
#> Loading model from cache...
#> Path [1] :Initial log joint density = -385038.759433
#> Path [1] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 44 -3.823e+05 7.041e-03 1.330e-01 4.449e-01 1.000e+00 2197 -3.250e+03 -3.252e+03
#> Path [1] :Best Iter: [41] ELBO (-3250.114876) evaluations: (2197)
#> Path [2] :Initial log joint density = -383940.428592
#> Path [2] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 35 -3.823e+05 1.044e-02 9.339e-02 7.835e-01 7.835e-01 1647 -3.249e+03 -3.253e+03
#> Path [2] :Best Iter: [34] ELBO (-3248.670938) evaluations: (1647)
#> Path [3] :Initial log joint density = -384376.973006
#> Path [3] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 46 -3.823e+05 1.564e-02 9.030e-02 1.000e+00 1.000e+00 2323 -3.251e+03 -3.263e+03
#> Path [3] :Best Iter: [38] ELBO (-3251.358261) evaluations: (2323)
#> Path [4] :Initial log joint density = -385358.254430
#> Path [4] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 37 -3.823e+05 1.029e-02 1.237e-01 1.000e+00 1.000e+00 1733 -3.252e+03 -3.254e+03
#> Path [4] :Best Iter: [35] ELBO (-3251.654210) evaluations: (1733)
#> Path [5] :Initial log joint density = -384151.690125
#> Path [5] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 48 -3.823e+05 4.598e-03 1.583e-01 2.149e-01 2.149e-01 2451 -3.250e+03 -3.247e+03
#> Path [5] :Best Iter: [48] ELBO (-3247.308685) evaluations: (2451)
#> Path [6] :Initial log joint density = -384264.689342
#> Path [6] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 39 -3.823e+05 1.453e-02 8.985e-02 1.000e+00 1.000e+00 1865 -3.251e+03 -3.252e+03
#> Path [6] :Best Iter: [37] ELBO (-3250.565054) evaluations: (1865)
#> Path [7] :Initial log joint density = -384225.846086
#> Path [7] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 38 -3.823e+05 4.637e-03 9.924e-02 7.281e-01 7.281e-01 1794 -3.250e+03 -3.251e+03
#> Path [7] :Best Iter: [28] ELBO (-3249.504014) evaluations: (1794)
#> Path [8] :Initial log joint density = -384196.804784
#> Path [8] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 45 -3.823e+05 2.094e-02 1.718e-01 1.000e+00 1.000e+00 2230 -3.250e+03 -3.253e+03
#> Path [8] :Best Iter: [42] ELBO (-3250.403964) evaluations: (2230)
#> Path [9] :Initial log joint density = -384578.213840
#> Path [9] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 46 -3.823e+05 1.268e-02 1.411e-01 1.000e+00 1.000e+00 2321 -3.250e+03 -3.251e+03
#> Path [9] :Best Iter: [41] ELBO (-3249.978805) evaluations: (2321)
#> Path [10] :Initial log joint density = -384413.041311
#> Path [10] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 42 -3.823e+05 1.265e-02 1.393e-01 1.000e+00 1.000e+00 2018 -3.251e+03 -3.252e+03
#> Path [10] :Best Iter: [40] ELBO (-3251.197813) evaluations: (2018)
#> Path [11] :Initial log joint density = -384797.152651
#> Path [11] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 42 -3.823e+05 1.088e-02 9.603e-02 1.000e+00 1.000e+00 2075 -3.253e+03 -3.253e+03
#> Path [11] :Best Iter: [32] ELBO (-3252.811848) evaluations: (2075)
#> Path [12] :Initial log joint density = -384285.607254
#> Path [12] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 44 -3.823e+05 5.752e-02 1.040e-01 1.000e+00 1.000e+00 2263 -3.250e+03 -3.251e+03
#> Path [12] :Best Iter: [43] ELBO (-3249.862696) evaluations: (2263)
#> Path [13] :Initial log joint density = -384517.904921
#> Path [13] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 44 -3.823e+05 6.251e-03 2.187e-01 5.433e-01 5.433e-01 2200 -3.251e+03 -3.255e+03
#> Path [13] :Best Iter: [39] ELBO (-3251.077061) evaluations: (2200)
#> Path [14] :Initial log joint density = -384867.663966
#> Path [14] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 42 -3.823e+05 7.522e-03 1.157e-01 1.000e+00 1.000e+00 2055 -3.253e+03 -3.254e+03
#> Path [14] :Best Iter: [29] ELBO (-3253.252990) evaluations: (2055)
#> Path [15] :Initial log joint density = -384102.216705
#> Path [15] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 42 -3.823e+05 1.858e-02 1.809e-01 1.000e+00 1.000e+00 1996 -3.250e+03 -3.250e+03
#> Path [15] :Best Iter: [42] ELBO (-3249.755284) evaluations: (1996)
#> Path [16] :Initial log joint density = -384046.021555
#> Path [16] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 33 -3.823e+05 1.308e-02 7.121e-02 1.000e+00 1.000e+00 1478 -3.250e+03 -3.252e+03
#> Path [16] :Best Iter: [32] ELBO (-3250.361898) evaluations: (1478)
#> Path [17] :Initial log joint density = -384041.956311
#> Path [17] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 37 -3.823e+05 1.194e-02 9.934e-02 1.000e+00 1.000e+00 1732 -3.250e+03 -3.249e+03
#> Path [17] :Best Iter: [37] ELBO (-3249.318941) evaluations: (1732)
#> Path [18] :Initial log joint density = -384031.320357
#> Path [18] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 40 -3.823e+05 1.214e-02 1.366e-01 1.000e+00 1.000e+00 1869 -3.251e+03 -3.253e+03
#> Path [18] :Best Iter: [38] ELBO (-3250.858190) evaluations: (1869)
#> Path [19] :Initial log joint density = -385313.404495
#> Path [19] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 44 -3.823e+05 1.670e-02 1.219e-01 1.000e+00 1.000e+00 2215 -3.249e+03 -3.253e+03
#> Path [19] :Best Iter: [42] ELBO (-3248.755006) evaluations: (2215)
#> Path [20] :Initial log joint density = -384151.199651
#> Path [20] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 41 -3.823e+05 9.693e-03 1.303e-01 1.000e+00 1.000e+00 2013 -3.250e+03 -3.250e+03
#> Path [20] :Best Iter: [34] ELBO (-3249.655646) evaluations: (2013)
#> Path [21] :Initial log joint density = -384265.819660
#> Path [21] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 37 -3.823e+05 2.078e-02 2.303e-01 1.000e+00 1.000e+00 1736 -3.250e+03 -3.253e+03
#> Path [21] :Best Iter: [30] ELBO (-3249.805271) evaluations: (1736)
#> Path [22] :Initial log joint density = -387819.021824
#> Path [22] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 43 -3.823e+05 3.782e-03 1.023e-01 6.656e-01 6.656e-01 2189 -3.251e+03 -3.253e+03
#> Path [22] :Best Iter: [34] ELBO (-3250.852327) evaluations: (2189)
#> Path [23] :Initial log joint density = -384002.711499
#> Path [23] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 41 -3.823e+05 4.570e-03 1.117e-01 6.442e-01 6.442e-01 1969 -3.250e+03 -3.252e+03
#> Path [23] :Best Iter: [33] ELBO (-3249.631527) evaluations: (1969)
#> Path [24] :Initial log joint density = -384160.401432
#> Path [24] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 27 -3.823e+05 1.095e-02 1.211e-01 1.000e+00 1.000e+00 1111 -3.252e+03 -3.253e+03
#> Path [24] :Best Iter: [26] ELBO (-3251.946439) evaluations: (1111)
#> Path [25] :Initial log joint density = -384417.048574
#> Path [25] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 49 -3.823e+05 1.819e-02 1.346e-01 1.000e+00 1.000e+00 2628 -3.248e+03 -3.248e+03
#> Path [25] :Best Iter: [46] ELBO (-3248.174047) evaluations: (2628)
#> Path [26] :Initial log joint density = -384084.359454
#> Path [26] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 40 -3.823e+05 2.046e-02 6.111e-02 1.000e+00 1.000e+00 1955 -3.249e+03 -3.250e+03
#> Path [26] :Best Iter: [39] ELBO (-3248.800726) evaluations: (1955)
#> Path [27] :Initial log joint density = -383985.656726
#> Path [27] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 36 -3.823e+05 1.254e-02 1.513e-01 8.998e-01 8.998e-01 1671 -3.250e+03 -3.253e+03
#> Path [27] :Best Iter: [35] ELBO (-3249.819094) evaluations: (1671)
#> Path [28] :Initial log joint density = -384314.639965
#> Path [28] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 35 -3.823e+05 2.306e-02 1.747e-01 9.754e-01 9.754e-01 1604 -3.251e+03 -3.253e+03
#> Path [28] :Best Iter: [29] ELBO (-3251.097071) evaluations: (1604)
#> Path [29] :Initial log joint density = -383886.716701
#> Path [29] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 34 -3.823e+05 7.276e-03 1.199e-01 9.720e-01 9.720e-01 1556 -3.250e+03 -3.250e+03
#> Path [29] :Best Iter: [34] ELBO (-3250.351249) evaluations: (1556)
#> Path [30] :Initial log joint density = -383937.969902
#> Path [30] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 39 -3.823e+05 6.681e-03 9.700e-02 6.438e-01 6.438e-01 1834 -3.250e+03 -3.252e+03
#> Path [30] :Best Iter: [33] ELBO (-3250.233434) evaluations: (1834)
#> Path [31] :Initial log joint density = -384233.349689
#> Path [31] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 29 -3.823e+05 6.753e-03 1.258e-01 4.638e-01 1.000e+00 1273 -3.254e+03 -3.256e+03
#> Path [31] :Best Iter: [26] ELBO (-3254.034523) evaluations: (1273)
#> Path [32] :Initial log joint density = -384155.229382
#> Path [32] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 35 -3.823e+05 1.082e-02 1.486e-01 1.000e+00 1.000e+00 1584 -3.253e+03 -3.254e+03
#> Path [32] :Best Iter: [29] ELBO (-3252.955566) evaluations: (1584)
#> Path [33] :Initial log joint density = -384409.909722
#> Path [33] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 38 -3.823e+05 1.460e-02 1.370e-01 1.000e+00 1.000e+00 1806 -3.253e+03 -3.251e+03
#> Path [33] :Best Iter: [38] ELBO (-3250.946031) evaluations: (1806)
#> Path [34] :Initial log joint density = -384168.933568
#> Path [34] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 46 -3.823e+05 9.869e-03 1.039e-01 1.000e+00 1.000e+00 2303 -3.249e+03 -3.248e+03
#> Path [34] :Best Iter: [46] ELBO (-3248.441873) evaluations: (2303)
#> Path [35] :Initial log joint density = -384219.523130
#> Path [35] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 32 -3.823e+05 1.857e-02 2.517e-01 1.000e+00 1.000e+00 1414 -3.251e+03 -3.251e+03
#> Path [35] :Best Iter: [32] ELBO (-3251.212221) evaluations: (1414)
#> Path [36] :Initial log joint density = -386972.265054
#> Path [36] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 42 -3.823e+05 1.289e-02 1.086e-01 1.000e+00 1.000e+00 2113 -3.251e+03 -3.253e+03
#> Path [36] :Best Iter: [34] ELBO (-3251.074106) evaluations: (2113)
#> Path [37] :Initial log joint density = -384051.024106
#> Path [37] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 36 -3.823e+05 1.111e-02 8.642e-02 1.000e+00 1.000e+00 1674 -3.249e+03 -3.253e+03
#> Path [37] :Best Iter: [32] ELBO (-3249.086771) evaluations: (1674)
#> Path [38] :Initial log joint density = -384420.687669
#> Path [38] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 46 -3.823e+05 1.288e-02 1.256e-01 1.000e+00 1.000e+00 2332 -3.251e+03 -3.252e+03
#> Path [38] :Best Iter: [39] ELBO (-3250.703873) evaluations: (2332)
#> Path [39] :Initial log joint density = -384497.171108
#> Path [39] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 33 -3.823e+05 6.336e-03 1.301e-01 1.000e+00 1.000e+00 1495 -3.252e+03 -3.253e+03
#> Path [39] :Best Iter: [31] ELBO (-3252.068278) evaluations: (1495)
#> Path [40] :Initial log joint density = -384160.966874
#> Path [40] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 46 -3.823e+05 5.573e-03 1.182e-01 9.084e-01 9.084e-01 2278 -3.250e+03 -3.249e+03
#> Path [40] :Best Iter: [46] ELBO (-3249.159090) evaluations: (2278)
#> Path [41] :Initial log joint density = -384063.509894
#> Path [41] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 41 -3.823e+05 1.047e-02 1.551e-01 8.268e-01 8.268e-01 1986 -3.250e+03 -3.254e+03
#> Path [41] :Best Iter: [35] ELBO (-3250.110323) evaluations: (1986)
#> Path [42] :Initial log joint density = -384781.479849
#> Path [42] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 41 -3.823e+05 5.596e-03 1.663e-01 5.385e-01 5.385e-01 1968 -3.253e+03 -3.255e+03
#> Path [42] :Best Iter: [40] ELBO (-3252.919535) evaluations: (1968)
#> Path [43] :Initial log joint density = -384092.960392
#> Path [43] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 37 -3.823e+05 1.920e-02 8.737e-02 1.000e+00 1.000e+00 1703 -3.251e+03 -3.253e+03
#> Path [43] :Best Iter: [35] ELBO (-3250.897747) evaluations: (1703)
#> Path [44] :Initial log joint density = -383964.879277
#> Path [44] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 35 -3.823e+05 1.462e-02 1.243e-01 1.000e+00 1.000e+00 1576 -3.250e+03 -3.251e+03
#> Path [44] :Best Iter: [29] ELBO (-3250.164539) evaluations: (1576)
#> Path [45] :Initial log joint density = -384160.682484
#> Path [45] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 38 -3.823e+05 1.434e-02 1.233e-01 1.000e+00 1.000e+00 1794 -3.251e+03 -3.251e+03
#> Path [45] :Best Iter: [31] ELBO (-3250.680897) evaluations: (1794)
#> Path [46] :Initial log joint density = -384291.807325
#> Path [46] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 39 -3.823e+05 1.506e-02 1.180e-01 1.000e+00 1.000e+00 1827 -3.249e+03 -3.250e+03
#> Path [46] :Best Iter: [38] ELBO (-3249.405869) evaluations: (1827)
#> Path [47] :Initial log joint density = -384056.310126
#> Path [47] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 30 -3.823e+05 9.345e-03 1.081e-01 1.000e+00 1.000e+00 1276 -3.251e+03 -3.253e+03
#> Path [47] :Best Iter: [29] ELBO (-3251.409584) evaluations: (1276)
#> Path [48] :Initial log joint density = -386642.672117
#> Path [48] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 34 -3.823e+05 2.357e-02 2.097e-01 1.000e+00 1.000e+00 1541 -3.255e+03 -3.252e+03
#> Path [48] :Best Iter: [34] ELBO (-3252.454726) evaluations: (1541)
#> Path [49] :Initial log joint density = -383991.549614
#> Path [49] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 39 -3.823e+05 6.351e-03 8.593e-02 1.000e+00 1.000e+00 1878 -3.250e+03 -3.251e+03
#> Path [49] :Best Iter: [34] ELBO (-3250.341485) evaluations: (1878)
#> Path [50] :Initial log joint density = -383899.739748
#> Path [50] : Iter log prob ||dx|| ||grad|| alpha alpha0 # evals ELBO Best ELBO Notes
#> 45 -3.823e+05 1.411e-02 1.132e-01 9.517e-01 9.517e-01 2242 -3.252e+03 -3.251e+03
#> Path [50] :Best Iter: [45] ELBO (-3251.054018) evaluations: (2242)
#> Finished in 7.7 seconds.
#> sccomp says: to do hypothesis testing run `sccomp_test()`,
#> the `test_composition_above_CLR_fold_change` = 0.1 equates to a change of ~10%, and
#> 0.7 equates to ~100% increase, if the baseline is ~0.1 proportion.
#> Use `sccomp_proportional_fold_change` to convert c_effect (linear) to proportion difference (non-linear).
#> sccomp says: auto-cleanup removed 1 draw files from 'sccomp_draws_files'
#> Joining with `by = join_by(cell_group, M, parameter)`
#> sccomp says: When visualising proportions, especially for complex models, consider setting `remove_unwanted_effects=TRUE`. This will adjust the proportions, preserving only the observed effect.
#> Loading model from cache...
#> Running standalone generated quantities after 1 MCMC chain, with 1 thread(s) per chain...
#>
#> Chain 1 Elapsed Time: 0.892 seconds (Generated Quantities)
#> Chain 1 finished in 0.0 seconds.
#> Joining with `by = join_by(cell_group, sample)`
#> Joining with `by = join_by(cell_group, sample, continuous_covariate)`
#> `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
#> `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
#> Warning: `position_jitterdodge()` requires non-overlapping x intervals.
# }