Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3297f8d

Browse files
committed
fix higlight working + formatting
1 parent 979681f commit 3297f8d

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

‎R/ggridges.R

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ get_ridge_data <- function(data, na.rm) {
3030
#' Prepare plotting data for ggridges
3131
#' @param closed boolean, should the polygon be closed at bottom (TRUE for
3232
#' geom_density_ridges2, FALSE for geom_density_ridges)
33-
prepare_ridge_chart <- function(data, prestats_data, layout, params, p, closed = FALSE, ...){
34-
33+
prepare_ridge_chart <- function(data, prestats_data, layout, params, p, closed = FALSE, ...) {
3534
d <- get_ridge_data(data, params$na.rm)
3635

3736
# split data into separate groups
@@ -52,25 +51,27 @@ prepare_ridge_chart <- function(data, prestats_data, layout, params, p, closed =
5251
# for each group create a density + vline + point as applicable
5352
res <- lapply(
5453
rev(groups),
55-
function(x){
56-
54+
function(x) {
5755
draw_stuff <- split(x, x$datatype)
5856

5957
# first draw the basic density ridge part
60-
6158
stopifnot(!is.null(draw_stuff$ridgeline))
59+
6260
d2 <- d1 <- draw_stuff$ridgeline
63-
if(!closed) d2$colour <- NA # no colour for density bottom line
61+
if(!closed) d2$colour <- NA # no colour for density bottom line
6462

6563
d1$y <- d1$ymax
6664
d1$alpha <- 1 # don't use fill alpha for line alpha
65+
6766
ridges <- list(
6867
to_basic(prefix_class(d2, "GeomDensity")),
6968
to_basic(prefix_class(d1, "GeomLine"))
7069
)
70+
# attach the crosstalk group/set
71+
ridges[[1]] <- structure(ridges[[1]], set = attr(d2, 'set')) # Density
72+
ridges[[2]] <- structure(ridges[[2]], set = attr(d1, 'set')) # Line
7173

72-
if('vline' %in% names(draw_stuff)){
73-
74+
if ('vline' %in% names(draw_stuff)) {
7475
draw_stuff$vline$xend <- draw_stuff$vline$x
7576
draw_stuff$vline$yend <- draw_stuff$vline$ymax
7677
draw_stuff$vline$y <- draw_stuff$vline$ymin
@@ -81,12 +82,13 @@ prepare_ridge_chart <- function(data, prestats_data, layout, params, p, closed =
8182
prefix_class(draw_stuff$vline, 'GeomSegment'),
8283
prestats_data, layout, params, p, ...
8384
)
85+
# attach the crosstalk group/set
86+
vlines <- structure(vlines, set = attr(draw_stuff$vline, 'set'))
8487
ridges <- c(ridges, list(vlines))
85-
8688
}
8789

8890
# points
89-
if('point' %in% names(draw_stuff)){
91+
if('point' %in% names(draw_stuff)){
9092
draw_stuff$point$y <- draw_stuff$point$ymin
9193

9294
# use point aesthetics
@@ -102,6 +104,8 @@ prepare_ridge_chart <- function(data, prestats_data, layout, params, p, closed =
102104
'GeomPoint'),
103105
prestats_data, layout, params, p, ...
104106
)
107+
# attach the crosstalk group/set
108+
points <- structure(points, set = attr(draw_stuff$point, 'set'))
105109
ridges <- c(ridges, list(points))
106110
}
107111

@@ -113,8 +117,7 @@ prepare_ridge_chart <- function(data, prestats_data, layout, params, p, closed =
113117

114118

115119
#' @export
116-
to_basic.GeomDensityRidgesGradient <- function(data, prestats_data, layout, params, p, ...){
117-
120+
to_basic.GeomDensityRidgesGradient <- function(data, prestats_data, layout, params, p, ...) {
118121
res <- prepare_ridge_chart(data, prestats_data, layout, params, p, FALSE, ...)
119122
# set list depth to 1
120123
unlist(res, recursive = FALSE)
@@ -182,7 +185,7 @@ to_basic.GeomRidgelineGradient <- function(data, prestats_data, layout, params,
182185
# for each group create a density + vline + point as applicable
183186
res <- lapply(
184187
rev(groups),
185-
function(x){
188+
function(x){
186189

187190
draw_stuff <- split(x, x$datatype)
188191

@@ -211,7 +214,7 @@ to_basic.GeomRidgelineGradient <- function(data, prestats_data, layout, params,
211214
# rows to be duplicated
212215
dupl_rows <- which(fillchange & !idchange)
213216
d2$y <- d2$ymax
214-
if (length(dupl_rows)>0){
217+
if (length(dupl_rows)>0) {
215218
rows <- d2[dupl_rows, ]
216219
rows$ids <- d2$ids[dupl_rows-1]
217220
rows <- rows[rev(seq_len(nrow(rows))), , drop = FALSE]
@@ -240,12 +243,11 @@ to_basic.GeomRidgelineGradient <- function(data, prestats_data, layout, params,
240243

241244
#' @export
242245
geom2trace.GeomRidgelineGradient <- function(data, params, p) {
243-
244246
# munching for polygon
245-
positions <- with(data, data.frame(
246-
x = c(x , rev(x)),
247-
y = c(ymax, rev(ymin))
248-
))
247+
positions <- data.frame(
248+
x = c(data$x , rev(data$x)),
249+
y = c(data$ymax, rev(data$ymin))
250+
)
249251

250252
L <- list(
251253
x = positions[["x"]],

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /