-
Notifications
You must be signed in to change notification settings - Fork 633
/
Copy pathggplotly-extensions-ggraph.R
51 lines (39 loc) · 1.75 KB
/
ggplotly-extensions-ggraph.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# ---------------------------------------------------------------------------
# TODO: ggraph::GeomAxisHive
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# ggraph custom Edge geoms
# ---------------------------------------------------------------------------
toEdgePath <- function(data, prestats_data, layout, params, p, ...) {
names(data) <- sub("^edge_", "", names(data))
prefix_class(data, "GeomPath")
}
#' @rawNamespace export(to_basic.GeomEdgeBezier)
to_basic.GeomEdgeBezier <- toEdgePath
#' @rawNamespace export(to_basic.GeomEdgeBspline)
to_basic.GeomEdgeBspline <- toEdgePath
#' @rawNamespace export(to_basic.GeomEdgeDensity)
to_basic.GeomEdgeDensity <- function(data, prestats_data, layout, params, p, ...) {
# avoid a weird precision issue
data$density[data$density < 0.005] <- 0
data$fill_plotlyDomain <- data$density
data$fill <- toRGB(
data$edge_fill, scales::rescale(data$density)
)
prefix_class(data, "GeomTile")
}
#' @rawNamespace export(to_basic.GeomEdgePath)
to_basic.GeomEdgePath <- toEdgePath
#' @rawNamespace export(to_basic.GeomEdgeSegment)
to_basic.GeomEdgeSegment <- toEdgePath
#' @rawNamespace export(to_basic.GeomEdgePoint)
to_basic.GeomEdgePoint <- function(data, prestats_data, layout, params, p, ...) {
prefix_class(data, "GeomPoint")
}
# ---------------------------------------------------------------------------
# ggraph custom Node geoms
# ---------------------------------------------------------------------------
#' @rawNamespace export(to_basic.GeomNodeTile)
to_basic.GeomNodeTile <- function(data, prestats_data, layout, params, p, ...) {
to_basic.GeomRect(data, prestats_data, layout, params, p, ...)
}