Nothing
test_that("basic plot test, layout 1", {
skip_if_not_installed("vdiffr")
g <- make_graph(c(1, 2, 1, 1, 2, 3), directed = F)
g$layout <- structure(
c(
1.3334764568601,
0.25005693449542,
-0.832839300886122,
-1.08278419159866,
-0.70646229874506,
-0.33032215991384
),
dim = 3:2
)
vdiffr::expect_doppelganger(
"Basic graph, layout 1",
function() {
cols <- c("red", "green", "blue")
plot(g, edge.color = cols)
}
)
})
test_that("basic plot test, layout 2", {
skip_if_not_installed("vdiffr")
g <- make_graph(c(1, 2, 1, 1, 2, 3), directed = F)
g$layout <- structure(
c(
1.17106961533433,
1.63885278868168,
2.10732892696401,
3.91718168529106,
2.87660789399794,
1.83449260993935
),
dim = 3:2
)
vdiffr::expect_doppelganger(
"Basic graph, layout 2",
function() {
cols <- c("red", "green", "blue")
plot(g, edge.color = cols)
}
)
})
test_that("basic plot test, spheres", {
skip_if_not_installed("vdiffr")
g <- make_graph(c(1, 2, 1, 1, 2, 3), directed = F)
g$layout <- structure(
c(
1.17106961533433,
1.63885278868168,
2.10732892696401,
3.91718168529106,
2.87660789399794,
1.83449260993935
),
dim = 3:2
)
vdiffr::expect_doppelganger(
"Basic graph, spheres",
function() {
plot(g, vertex.shape = "sphere", vertex.size = 40)
}
)
})
test_that("rglplot() works", {
skip_if_not_installed("rgl", "1.3.14")
# https://stackoverflow.com/a/46320771/5489251
withr::local_envvar(RGL_USE_NULL = TRUE)
withr::local_seed(42)
el <- cbind(sample(1:5), sample(1:5))
g <- graph_from_edgelist(el)
expect_silent(rglplot(g))
expect_silent(rglplot(g, edge.label = letters[1:ecount(g)]))
})
test_that("label colors are correct when loops are present", {
# check that Bug 157 is fixed
skip_if_not_installed("vdiffr")
g <- make_graph(c(1, 2, 1, 1, 2, 3), directed = FALSE)
g$layout <- structure(
c(
1.17106961533433,
1.63885278868168,
2.10732892696401,
3.91718168529106,
2.87660789399794,
1.83449260993935
),
dim = 3:2
)
cols <- c("red", "green", "blue")
vdiffr::expect_doppelganger(
"loop graph",
function() {
plot(
g,
edge.color = cols,
edge.label.color = cols,
edge.label = cols,
margin = 0.5
)
}
)
})
test_that("Edges stop at outside of rectangle node", {
skip_if_not_installed("vdiffr")
rectangle_edges <- function() {
g <- make_graph(c(1, 2, 1, 4, 2, 1, 2, 5, 2, 3, 4, 1, 5, 2, 3, 2))
layout <- cbind(
c(-2.01, -1.16, -1.24, -2.74, -0.13),
c(1.27, 2.1, 3.14, 0.56, 2.01)
)
plot(
g,
vertex.size = 30,
vertex.size2 = 30,
vertex.color = rgb(0.1, 0.7, 0.8, 0.1),
vertex.shape = "rectangle",
layout = layout
)
}
vdiffr::expect_doppelganger("rectangle-edges", rectangle_edges)
})
test_that("layout as graph attribute error works", {
g <- make_full_graph(10)
g$layout <- layout_in_circle(g)[1:5, ]
expect_snapshot(error = TRUE, {
plot(g)
})
})
test_that("Multi loops are arranged correctly", {
skip_if_not_installed("vdiffr")
multi_loops_triangle <- function() {
g <- make_graph(c(1,2,2,3,3,1,1,1,1,1,1,1,1,1),directed = FALSE)
V(g)$x <- c(1,1.5,2)
V(g)$y <- c(0,1,0)
plot(g, margin = 0.2, loop.size = 2)
}
vdiffr::expect_doppelganger("multi-loops-triangle", multi_loops_triangle)
multi_loops_many <- function() {
g2 <- make_graph(c(1,2, 2,3, 3,1, 1,4, 4,5, 5,1, 3,4, 5,2, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1),directed = FALSE)
V(g2)$x <- c(1,2,2,0,0)
V(g2)$y <- c(1,0,2,2,0)
plot(g2, loop.size = 2)
}
vdiffr::expect_doppelganger("multi-loops-many", multi_loops_many)
})
test_that("Vertex label rotation works", {
skip_if_not_installed("vdiffr")
label_rotate <- function() {
g <- make_ring(5, directed = FALSE, circular = FALSE)
V(g)$label <- c("AAAAA", "BBBBB", "CCCCC","DDDDD", "EEEEE")
g$layout <- cbind(1:5, rep(1, 5))
plot(
g,
vertex.label.angle = c(90, 90, 270, 270, 90),
vertex.label.adj = c(1.1,0.5)
)
}
vdiffr::expect_doppelganger("label-rotate", label_rotate)
})
test_that("Arrow drawing works correctly", {
skip_if_not_installed("vdiffr")
standard_arrow <- function() {
g <- make_graph(c(1, 2, 1, 3, 2, 4), directed = TRUE)
g$layout <- cbind(1:4, rep(0, 4))
plot(g)
}
vdiffr::expect_doppelganger("standard-arrow", standard_arrow)
standard_arrow_modes <- function() {
g <- make_graph(c(1, 2, 2, 3, 3, 4), directed = TRUE)
g$layout <- cbind(1:4, rep(0, 4))
plot(g, edge.arrow.mode = c(1,2,3))
}
vdiffr::expect_doppelganger("standard-arrow-modes", standard_arrow_modes)
standard_arrow_sizes <- function() {
g <- make_graph(c(1, 2, 2, 3, 3, 4), directed = TRUE)
g$layout <- cbind(1:4, rep(0, 4))
plot(g, edge.arrow.size = c(1,2,3))
}
vdiffr::expect_doppelganger("standard-arrow-sizes", standard_arrow_sizes)
})
test_that("mark border linewidth", {
skip_if_not_installed("vdiffr")
mark_border_lwd <- function() {
g <- make_full_graph(4, directed = FALSE)
V(g)$x <- c(1, 2, 2, 1)
V(g)$y <- c(1, 1, 2, 2)
wc <- cluster_walktrap(g)
plot(
wc,
g,
vertex.label = NA,
vertex.size = 20,
mark.shape = 0,
edge.width = 0.1,
mark.expand = 40,
mark.lwd = 5,
margin = 1
)
}
vdiffr::expect_doppelganger("mark-border-lwd", mark_border_lwd)
})
test_that("plot rescales correctly", {
skip_if_not_installed("vdiffr")
rescale_coords <- function() {
n <- 11
a <- seq(0, 2 * pi, length.out = n + 1)[-1]
x <- 5 * cos(a)
y <- 3 * sin(a)
L <- matrix(c(x, y), ncol = 2)
G <- make_full_graph(n) |>
set_vertex_attr("x", value = x) |>
set_vertex_attr("y", value = y)
withr::with_par(
list(mfrow = c(1, 3)),
code = {
plot(G, layout = layout_nicely(G), axes = TRUE)
plot(G, layout = L, rescale = FALSE, axes = TRUE)
plot(
G,
xlim = range(V(G)$x),
ylim = range(V(G)$y),
rescale = FALSE,
asp = 1,
axes = TRUE
)
}
)
}
vdiffr::expect_doppelganger("rescale-coords", rescale_coords)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.