Skip to content

Commit 735caa4

Browse files
committed
quick implementation of most of ggraph/ggforce
1 parent 3d49fbc commit 735caa4

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

Diff for: DESCRIPTION

+3
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ Suggests:
7777
palmerpenguins,
7878
rversions,
7979
reticulate
80+
Enhances:
81+
ggforce,
82+
ggraph
8083
LazyData: true
8184
RoxygenNote: 7.1.2
8285
Encoding: UTF-8

Diff for: R/ggplotly-extensions-ggforce.R

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#' @rawNamespace export(to_basic.GeomArc)
2+
to_basic.GeomArc <- function(data, prestats_data, layout, params, p, ...) {
3+
prefix_class(data, "GeomPath")
4+
}
5+
6+
#' @rawNamespace export(to_basic.GeomArc0)
7+
to_basic.GeomArc0 <- function(data, prestats_data, layout, params, p, ...) {
8+
# TODO: we should have another geom2trace method for curveGrob()...
9+
prefix_class(data, "GeomPath")
10+
}
11+
12+
#' @rawNamespace export(to_basic.GeomArcBar)
13+
to_basic.GeomArcBar <- function(data, prestats_data, layout, params, p, ...) {
14+
prefix_class(data, "GeomPolygon")
15+
}
16+
17+
#' @rawNamespace export(to_basic.GeomBezier0)
18+
to_basic.GeomBezier0 <- function(data, prestats_data, layout, params, p, ...) {
19+
prefix_class(data, "GeomPath")
20+
}
21+
22+
#' @rawNamespace export(to_basic.GeomBspline0)
23+
to_basic.GeomBspline0 <- function(data, prestats_data, layout, params, p, ...) {
24+
prefix_class(data, "GeomPath")
25+
}
26+
27+
#' @rawNamespace export(to_basic.GeomBsplineClosed0)
28+
to_basic.GeomBsplineClosed0 <- function(data, prestats_data, layout, params, p, ...) {
29+
prefix_class(data, "GeomPath")
30+
}
31+
32+
#' @rawNamespace export(to_basic.GeomCircle)
33+
to_basic.GeomCircle <- function(data, prestats_data, layout, params, p, ...) {
34+
prefix_class(data, "GeomPolygon")
35+
}
36+
37+
#' @rawNamespace export(to_basic.GeomMarkCircle)
38+
to_basic.GeomMarkCircle <- function(data, prestats_data, layout, params, p, ...) {
39+
# TODO: need to incorporate logic from R/mark_circle.R
40+
stop("not yet implemented")
41+
}
42+
43+
#' @rawNamespace export(to_basic.GeomMarkEllipsis)
44+
to_basic.GeomMarkEllipsis <- function(data, prestats_data, layout, params, p, ...) {
45+
# TODO: need to incorporate logic from R/mark_elipsis.R
46+
stop("not yet implemented")
47+
}
48+
49+
#' @rawNamespace export(to_basic.GeomMarkHull)
50+
to_basic.GeomMarkHull <- function(data, prestats_data, layout, params, p, ...) {
51+
# TODO: need to incorporate logic from R/mark_hull.R
52+
stop("not yet implemented")
53+
}
54+
55+
#' @rawNamespace export(to_basic.GeomMarkRect)
56+
to_basic.GeomMarkRect <- function(data, prestats_data, layout, params, p, ...) {
57+
prefix_class(data, "GeomPolygon")
58+
}
59+
60+
#' @rawNamespace export(to_basic.GeomParallelSetsAxes)
61+
to_basic.GeomParallelSetsAxes <- function(data, prestats_data, layout, params, p, ...) {
62+
browser()
63+
prefix_class(data, "GeomPolygon")
64+
}
65+
66+
#' @rawNamespace export(to_basic.GeomPathInterpolate)
67+
to_basic.GeomPathInterpolate <- function(data, prestats_data, layout, params, p, ...) {
68+
prefix_class(data, "GeomPath")
69+
}
70+
71+
#' @rawNamespace export(to_basic.GeomShape)
72+
to_basic.GeomShape <- function(data, prestats_data, layout, params, p, ...) {
73+
prefix_class(data, "GeomPolygon")
74+
}
75+
76+
#' @rawNamespace export(to_basic.GeomSina)
77+
to_basic.GeomSina <- function(data, prestats_data, layout, params, p, ...) {
78+
prefix_class(data, "GeomPoint")
79+
}

Diff for: R/ggplotly-extensions-ggraph.R

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

0 commit comments

Comments
 (0)