Skip to content

Commit e2a817e

Browse files
authored
Merge pull request #1386 from ropensci/dplyr-groups
query dplyr groups from data only if the relevant trace has a notion …
2 parents 0e4e1d5 + 9527a9e commit e2a817e

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed

R/plotly_build.R

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,28 +131,24 @@ plotly_build.plotly <- function(p, registerFrames = TRUE) {
131131
class = oldClass(x)
132132
)
133133

134+
# determine trace type (if not specified, can depend on the # of data points)
135+
# note that this should also determine a sensible mode, if appropriate
136+
trace <- verify_type(trace)
137+
# verify orientation of boxes/bars
138+
trace <- verify_orientation(trace)
139+
134140
# attach crosstalk info, if necessary
135141
if (crosstalk_key() %in% names(dat) && isTRUE(trace[["inherit"]] %||% TRUE)) {
136142
trace[["key"]] <- trace[["key"]] %||% dat[[crosstalk_key()]]
137143
trace[["set"]] <- trace[["set"]] %||% attr(dat, "set")
138144
}
139145

140146
# if appropriate, tack on a group index
141-
grps <- tryCatch(
142-
as.character(dplyr::groups(dat)),
143-
error = function(e) character(0)
144-
)
145-
147+
grps <- if (has_group(trace)) tryNULL(dplyr::group_vars(dat))
146148
if (length(grps) && any(lengths(trace) == NROW(dat))) {
147149
trace[[".plotlyGroupIndex"]] <- interaction(dat[, grps, drop = F])
148150
}
149151

150-
# determine trace type (if not specified, can depend on the # of data points)
151-
# note that this should also determine a sensible mode, if appropriate
152-
trace <- verify_type(trace)
153-
# verify orientation of boxes/bars
154-
trace <- verify_orientation(trace)
155-
156152
# add sensible axis names to layout
157153
for (i in c("x", "y", "z")) {
158154
nm <- paste0(i, "axis")

0 commit comments

Comments
 (0)