# default settings for normally distributed data, 95% confidence interval,
data <- data.frame(x = rep(c(1, 2, 3), each = 20),
y = rep(c(1, 2, 3), each = 20) + stats::rnorm(60),
group = rep(1:3, 20))
xgx_plot(data, ggplot2::aes(x = x, y = y)) +
xgx_stat_ci(conf_level = 0.95)
# try different geom
xgx_plot(data, ggplot2::aes(x = x, y = y)) +
xgx_stat_ci(conf_level = 0.95, geom = list("ribbon", "point", "line"))
# plotting lognormally distributed data
data <- data.frame(x = rep(c(1, 2, 3), each = 20),
y = 10^(rep(c(1, 2, 3), each = 20) + stats::rnorm(60)),
group = rep(1:3, 20))
xgx_plot(data, ggplot2::aes(x = x, y = y)) +
xgx_stat_ci(conf_level = 0.95, distribution = "lognormal")
# note: you DO NOT need to use both distribution = "lognormal"
# and scale_y_log10()
xgx_plot(data, ggplot2::aes(x = x, y = y)) +
xgx_stat_ci(conf_level = 0.95) + xgx_scale_y_log10()
# plotting binomial data
data <- data.frame(x = rep(c(1, 2, 3), each = 20),
y = stats::rbinom(60, 1, rep(c(0.2, 0.6, 0.8),
each = 20)),
group = rep(1:3, 20))
xgx_plot(data, ggplot2::aes(x = x, y = y)) +
xgx_stat_ci(conf_level = 0.95, distribution = "binomial")
# including multiple groups in same plot
xgx_plot(data, ggplot2::aes(x = x, y = y)) +
xgx_stat_ci(conf_level = 0.95, distribution = "binomial",
ggplot2::aes(color = factor(group)),
position = ggplot2::position_dodge(width = 0.5))
# plotting ordinal or multinomial data
set.seed(12345)
data = data.frame(x = 120*exp(stats::rnorm(100,0,1)),
response = sample(c("Mild","Moderate","Severe"), 100, replace = TRUE),
covariate = sample(c("Male","Female"), 100, replace = TRUE))
xgx_plot(data = data) +
xgx_stat_ci(mapping = ggplot2::aes(x = x, response = response, colour = covariate),
distribution = "ordinal", bins = 4) +
ggplot2::scale_y_continuous(labels = scales::percent_format()) + ggplot2::facet_wrap(~response)
xgx_plot(data = data) +
xgx_stat_ci(mapping = ggplot2::aes(x = x, response = response, colour = response),
distribution = "ordinal", bins = 4) +
ggplot2::scale_y_continuous(labels = scales::percent_format()) + ggplot2::facet_wrap(~covariate)
# Example plotting categorical vs categorical data
set.seed(12345)
data = data.frame(x = 120*exp(stats::rnorm(100,0,1)),
response = sample(c("Trt1", "Trt2", "Trt3"), 100, replace = TRUE),
covariate = factor(
sample(c("White","Black","Asian","Other"), 100, replace = TRUE),
levels = c("White", "Black", "Asian", "Other")))
xgx_plot(data = data) +
xgx_stat_ci(mapping = ggplot2::aes(x = response, response = covariate),
distribution = "ordinal") +
xgx_stat_ci(mapping = ggplot2::aes(x = 1, response = covariate), geom = "hline",
distribution = "ordinal") +
ggplot2::scale_y_continuous(labels = scales::percent_format()) +
ggplot2::facet_wrap(~covariate) +
ggplot2::xlab("Treatment group") +
ggplot2::ylab("Percent of subjects by category")
# Same example with orientation flipped (only works for ggplot2 v.3.3.0 or later)
# only run if ggplot2 v.3.3.0 or later
ggplot2_geq_v3.3.0 <- utils::compareVersion(
as.character(utils::packageVersion("ggplot2")), '3.3.0') >= 0
if(ggplot2_geq_v3.3.0){
xgx_plot(data = data) +
xgx_stat_ci(mapping = ggplot2::aes(y = response, response = covariate), orientation = "y",
distribution = "ordinal") +
xgx_stat_ci(mapping = ggplot2::aes(y = 1, response = covariate), orientation = "y",
geom = "vline", distribution = "ordinal") +
ggplot2::scale_x_continuous(labels = scales::percent_format()) +
ggplot2::facet_wrap(~covariate) +
ggplot2::ylab("Treatment group") +
ggplot2::xlab("Percent of subjects by category")
}
Run the code above in your browser using DataLab