18
18
# ' @export
19
19
# ' @rdname geom_violin
20
20
stat_ydensity <- function (mapping = NULL , data = NULL , geom = " violin" ,
21
- position = " dodge" , adjust = 1 , kernel = " gaussian" ,
21
+ position = " dodge" , bw = " nrd0 " , adjust = 1 , kernel = " gaussian" ,
22
22
trim = TRUE , scale = " area" , na.rm = FALSE ,
23
23
show.legend = NA , inherit.aes = TRUE , ... ) {
24
24
scale <- match.arg(scale , c(" area" , " count" , " width" ))
@@ -32,6 +32,7 @@ stat_ydensity <- function(mapping = NULL, data = NULL, geom = "violin",
32
32
show.legend = show.legend ,
33
33
inherit.aes = inherit.aes ,
34
34
params = list (
35
+ bw = bw ,
35
36
adjust = adjust ,
36
37
kernel = kernel ,
37
38
trim = trim ,
@@ -51,7 +52,7 @@ StatYdensity <- ggproto("StatYdensity", Stat,
51
52
required_aes = c(" x" , " y" ),
52
53
non_missing_aes = " weight" ,
53
54
54
- compute_group = function (data , scales , width = NULL , adjust = 1 ,
55
+ compute_group = function (data , scales , width = NULL , bw = " nrd0 " , adjust = 1 ,
55
56
kernel = " gaussian" , trim = TRUE , na.rm = FALSE ) {
56
57
if (nrow(data ) < 3 ) return (data.frame ())
57
58
@@ -61,7 +62,7 @@ StatYdensity <- ggproto("StatYdensity", Stat,
61
62
range <- scales $ y $ dimension()
62
63
}
63
64
dens <- compute_density(data $ y , data $ w , from = range [1 ], to = range [2 ],
64
- adjust = adjust , kernel = kernel )
65
+ bw = bw , adjust = adjust , kernel = kernel )
65
66
66
67
dens $ y <- dens $ x
67
68
dens $ x <- mean(range(data $ x ))
@@ -75,11 +76,11 @@ StatYdensity <- ggproto("StatYdensity", Stat,
75
76
dens
76
77
},
77
78
78
- compute_panel = function (self , data , scales , width = NULL , adjust = 1 ,
79
+ compute_panel = function (self , data , scales , width = NULL , bw = " nrd0 " , adjust = 1 ,
79
80
kernel = " gaussian" , trim = TRUE , na.rm = FALSE ,
80
81
scale = " area" ) {
81
82
data <- ggproto_parent(Stat , self )$ compute_panel(
82
- data , scales , width = width , adjust = adjust , kernel = kernel ,
83
+ data , scales , width = width , bw = bw , adjust = adjust , kernel = kernel ,
83
84
trim = trim , na.rm = na.rm
84
85
)
85
86
0 commit comments