# Shawn Gilroy, 2021 GPLv2+
#
# demo/semilogplot.R
#
# This file illustrates how to construct a celeration,
# chart with basic annotations
#
min_x <- 1
max_x <- 30
set.seed(65535)
xs <- 1:30
ys <- 0 + 5 * xs + rnorm(length(xs), 0, 2)
ys2 <- 0.2 + 0.1 * xs + rnorm(length(xs), 0, 0.25)
ys2[2] <- 0
semi_log_data <- data.frame(
Session = xs,
SkillA = ys,
SkillB = ys2
)
describe("Semi Log Plot Style", {
it("Should render as normal", {
expect_no_error(
scr_plot(
semi_log_data,
aesthetics = var_map(
x = Session,
y = SkillA
),
omi = c(
0.0,
0.35,
0.2,
0.25
),
mai = c(
0.0,
0.25,
0.1,
0.25
),
semilog = TRUE
) |>
scr_yoverride(c(0.1, 1000)) |>
scr_title("Semi-log Chart: Hypothetical Case") |>
scr_xlabel("Session") |>
scr_ylabel("Frequency") |>
scr_lines() |>
scr_points(
pch = 21,
fill = "black",
cex = 2
) |>
scr_lines(
mapping = list(
x = Session,
y = SkillB
)
) |>
scr_points(
pch = 21,
fill = "gray",
cex = 2,
mapping = list(
x = Session,
y = SkillB
)
) |>
scr_label_phase(
cex = 1,
adj = 0.5,
labels = list(
"Annotated Labels on Plot" = list(
x = 5,
y = 150
),
"Labels for Phase Changes" = list(
x = 18,
y = 15
),
"Logarithmic Plotting, With Zero Visualizations" = list(
x = 6,
y = 3,
cex = 1
)
)
) |>
scr_anno_arrows(
length = 0.1,
arrows = list(
"A" = list(
x0 = 5,
x1 = 7,
y0 = 125,
y1 = 50
),
"B" = list(
x0 = 18,
x1 = 14,
y0 = 21,
y1 = 55
)
)
) |>
scr_anno_brackets(
length = 0.1,
brackets = list(
"A" = list(
x0 = 1.5,
x1 = 10.5,
y0 = 2.5,
y1 = 1.5
)
)
) |>
scr_anno_guide_line(
color = "black",
lty = 1,
coords = list(
"A" = list(
x0 = 9.5,
x1 = 9.5,
y0 = 10,
y1 = 500
),
"B" = list(
x0 = 1,
x1 = 9,
y0 = 8,
y1 = 50,
col = "green",
lty = 2,
lwd = 3
),
"C" = list(
x0 = 10,
x1 = 30,
y0 = 50,
y1 = 150,
col = "orange",
lty = 2,
lwd = 3
)
)
) |>
scr_legend(
position = "topright", # Specify legend location
legend = c(
"Skill A", # labels to include (ordered)
"Skill B"
),
col = c(
"black", # color of markers (ordered)
"black"
),
pt_bg = c(
"black", # color of markers (ordered)
"gray"
),
bg = "white",
lty = c(
1,
1
), # line types (ordered)
pch = c(
21,
21
), # marker types (ordered)
bty = "y", # remove border
pt_cex = 2.25, # point size scale
cex = 1.5, # text size scale
text_col = "black", # text color
horiz = FALSE, # list items vertically
box_lty = 1
) |>
print()
)
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.