gghalves icon indicating copy to clipboard operation
gghalves copied to clipboard

the "nudge" parameter spoils the shape of the geom_half_violin

Open Generalized opened this issue 4 years ago • 2 comments

I wanted to separate the violin plot a bit from the vertical grid, where I draw some data points. Using the nudge parameter distorted the shape of the violin: obraz

I expected this:

obraz

PS: My intention was to put both boxplot and the violin on a spaghetti plot for a longitudinal experiment. Unfortunatelty, the violin plot overlaps the data points, that's why I wanted to "nudge" it a bit.

obraz

ggplot(data, aes(x = time, y = value)) + 
    geom_half_boxplot(nudge = 0.1, width=0.4)+
    geom_half_violin(nudge = 0.1, side = "r", trim = FALSE)

data <- structure(list(ID = c("9891AA2", "9891AA2", "9891AA3", "9891AA3", 
"9891AA3", "9891A11", "9891A11", "9891A11", "9891A13", "9891A13", 
"9891A13", "9891A16", "9891A16", "9891A16", "9891A18", "9891A18", 
"9891A18", "9891A19", "9891A19", "9891A19", "9891A21", "9891A21", 
"9891A21", "9891A22", "9891A22", "9891A22", "9891A23", "9891A23", 
"9891A23", "9891A25", "9891A25", "9891A25", "9891A25", "9891A25", 
"9891A25", "9891A28", "9891A28", "9891A28", "9892AA1", "9892AA1", 
"9892AA2", "9892AA2", "9892AA5", "9892AA5", "9892AA6", "9892AA6", 
"9892AA9", "9892AA9", "9892A1A", "9892A1A", "9892A12", "9892A12", 
"9892A15", "9892A15", "9892A16", "9892A16", "9892A17", "9892A17", 
"9892A2A", "9892A2A", "9892A22", "9892A22", "9892A25", "9892A25", 
"9892A3A", "9892A3A", "9892A33", "9892A33", "9892A4A", "9892A4A", 
"9892A45", "9892A45", "9892A48", "9892A48", "9892A49", "9892A49", 
"9892A5A", "9892A5A", "9892A51", "9892A51", "9897AA1", "9897AA1", 
"9897AA4", "9897AA4", "9897AA4", "9897AA4", "989AAA2", "989AAA2", 
"989AAA2", "989AAA2", "989AAA4", "989AAA4", "989AAA5", "989AAA5", 
"989AAA5", "989AAA5", "989AAA5", "989AAA7", "989AAA7", "989AAA7", 
"989AAA7", "989AAA7", "989AAA8", "989AAA8", "989AA24", "989AA24", 
"989AA24", "989AA24", "989AA24", "989AA24", "989AA31", "989AA31", 
"989AA31", "989AA31", "989AA31", "989AA37", "989AA37", "989AA37", 
"989AA37", "989AA37", "989AA37", "989AA38", "989AA38", "989AA38", 
"989AA38", "989AA38", "989AA38", "989AA39", "989AA39", "989AA39", 
"989AA41", "989AA41", "989AA41", "989AA41", "989AA41", "989AA41", 
"989AA43", "989AA43", "989AA43", "989AA43", "989AA45", "989AA45", 
"989AA45", "989AA45", "989AA45", "989AA45", "989AA47", "989AA47", 
"989AA47", "989AA47", "989AA47", "989AA47", "989AA5A", "989AA5A", 
"989AA5A", "989AA5A", "9899AA1", "9899AA1", "9899AA3", "9899AA3", 
"9899AA5", "9899AA5", "9899AA7", "9899AA7", "9899A1A", "9899A1A", 
"9899A11", "9899A11", "9899A17", "9899A17", "9899A22", "9899A22", 
"9891A1A", "9891A1A", "9891A18", "9891A18", "9892AA2", "9892AA2", 
"9892AA3", "9892AA3", "9892AA8", "9892AA8", "9892AA9", "9892AA9", 
"9892A1A", "9892A1A", "9892A11", "9892A11", "9892A17", "9892A17", 
"9892A19", "9892A19", "9892A2A", "9892A2A", "9892A21", "9892A21", 
"9892A22", "9892A22", "9892A26", "9892A26", "9896AA1", "9896AA1", 
"9896AA2", "9896AA2", "9896AA2", "9896AA2", "9896AA5", "9896AA5", 
"9896AA7", "9896AA7", "9896AA8", "9896AA8", "9896AA9", "9896AA9", 
"9896A1A", "9896A1A", "9896A11", "9896A11", "9896A12", "9896A12", 
"9896A13", "9896A13", "9896A14", "9896A14", "9896A15", "9896A15", 
"9896A16", "9896A16", "9896A18", "9896A18", "9896A19", "9896A19", 
"9896A24", "9896A24", "9896A24", "9896A26", "9896A26", "9896A32", 
"9896A32", "9896A34", "9896A34", "9896A35", "9896A35", "9896A37", 
"9896A37", "9896A37", "9896A39", "9896A39", "9897AA3", "9897AA3", 
"9897AA3", "9897AA3", "9897AA3", "9897AA3", "9897AA4", "9897AA4", 
"9897AA4", "9897AA4", "9897AA4", "9897AA4", "9897AA5", "9897AA5", 
"9897AA5", "9897AA5", "9897AA5", "9897AA5", "9897AA6", "9897AA6", 
"9897AA6", "9897AA6", "9897AA6", "9897AA6", "9897AA7", "9897AA7", 
"9897AA7", "9897A1A", "9897A1A", "9897A1A", "9897A1A", "9897A1A", 
"9897A1A", "9897A11", "9897A11", "9897A11", "9897A11", "9897A11", 
"9897A11", "9897A13", "9897A13", "9897A13", "9897A13", "9897A13", 
"9897A13", "9897A14", "9897A14", "9897A14", "9897A14", "9897A14", 
"9897A14", "9897A16", "9897A16", "9897A16", "9897A16", "9897A16", 
"9897A16", "9897A17", "9897A17", "9897A17", "9897A17", "9897A17", 
"9897A17", "9899AA2", "9899AA2", "9899AA5", "9899AA5", "9899AA8", 
"9899AA8", "9899AA9", "9899AA9", "9899AA9", "9899AA9", "9899A15", 
"9899A15", "9899A15", "9899A15", "9899A17", "9899A17", "9899A22", 
"9899A22", "9899A22", "9899A22", "9899A23", "9899A23", "9899A23", 
"9899A23", "9899A24", "9899A24", "9899A25", "9899A25", "9899A26", 
"9899A26", "9899A26", "9899A26", "9899A27", "9899A27", "9899A27", 
"9899A27", "9899A29", "9899A29", "9899A3A", "9899A3A", "9899A3A", 
"9899A3A", "9899A31", "9899A31", "9899A31", "9899A31", "9899A32", 
"9899A32", "9899A38", "9899A38", "9899A38", "9899A38", "9899A4A", 
"9899A4A", "9899A4A", "9899A4A", "9899A42", "9899A42", "9899A44", 
"9899A44", "9899A44", "9899A44", "9899A48", "9899A48", "9899A49", 
"9899A49", "989AA12", "989AA12", "989AA22", "989AA22", "989AA22", 
"989AA22", "989AA23", "989AA23", "989AA23", "9894AA2", "9894AA2", 
"9894AA3", "9894AA3", "9894AA4", "9894AA4", "9894AA6", "9894AA6", 
"9894AA7", "9894AA7", "9894A14", "9894A14", "9894A15", "9894A15", 
"9894A16", "9894A16", "9894A17", "9894A17", "9894A18", "9894A18", 
"9894A21", "9894A21", "9894A22", "9894A22", "9894A23", "9894A23", 
"9894A25", "9894A25", "9897AA3", "9897AA3"), value = c(8.22, 
8.42, 7.82, 8.02, 8.22, 8.62, 8.62, 8.52, 8.62, 9.02, 9.52, 7.82, 
7.92, 7.82, 8.22, 8.42, 8.72, 8.72, 9.22, 9.22, 7.22, 7.42, 7.22, 
8.02, 8.32, 8.32, 7.82, 9.32, 9.12, 8.62, 8.62, 8.42, 8.42, 9.02, 
8.92, 7.92, 7.82, 8.42, 8.12, 8.32, 8.42, 8.62, 7.32, 7.52, 7.62, 
7.62, 9.92, 12.02, 7.62, 7.92, 7.72, 8.22, 8.12, 8.32, 8.82, 
9.32, 8.62, 8.72, 8.62, 8.62, 8.02, 7.92, 9.82, 9.82, 8.52, 8.92, 
7.92, 8.42, 7.52, 7.92, 8.52, 8.32, 8.62, 8.62, 8.02, 8.02, 8.32, 
8.82, 8.32, 8.42, 8.52, 8.32, 9.12, 9.32, 8.82, 11.82, 8.82, 
9.12, 7.42, 7.42, 7.52, 8.32, 8.82, 8.92, 8.92, 8.52, 9.32, 8.92, 
8.82, 8.22, 8.32, 8.52, 8.52, 8.42, 9.32, 9.22, 9.12, 8.72, 9.42, 
8.92, 9.02, 9.42, 9.62, 8.02, 8.42, 9.92, 10.02, 10.22, 8.62, 
8.52, 8.52, 9.02, 9.22, 9.02, 8.02, 7.92, 7.72, 8.72, 9.12, 9.02, 
7.42, 7.72, 7.62, 7.32, 7.22, 8.22, 9.32, 9.22, 8.22, 9.12, 9.42, 
9.52, 9.32, 8.92, 8.62, 8.82, 9.52, 9.62, 9.82, 8.02, 7.92, 8.82, 
9.02, 9.62, 7.22, 7.22, 7.92, 7.42, 8.12, 8.62, 8.62, 8.32, 8.22, 
8.22, 7.42, 7.52, 8.52, 7.72, 6.82, 7.02, 7.32, 7.92, 8.72, 9.32, 
8.62, 9.72, 7.32, 7.72, 7.82, 8.52, 7.22, 7.62, 8.12, 10.52, 
7.02, 7.32, 7.12, 7.12, 6.82, 6.62, 7.42, 7.62, 8.42, 9.52, 7.62, 
8.12, 7.32, 7.42, 7.82, 7.82, 8.08, 7.87, 8.84, 8.54, 8.81, 8.85, 
6.24, 6.84, 8.23, 8.28, 8.03, 8.34, 8.95, 9.42, 8.32, 8.37, 8.78, 
9.3, 8.65, 8.53, 7.86, 7.91, 8.04, 8.17, 8.68, 9.03, 7.51, 7.66, 
8.15, 8.59, 8.61, 7.95, 8.34, 8.46, 9.52, 7.83, 8.52, 8.76, 9.16, 
8.4, 8.78, 8.69, 9.32, 7.76, 8.62, 8.72, 7.54, 7.8, 8.76, 8.85, 
8.88, 9.35, 9.23, 9.48, 7.71, 8.15, 7.95, 9.14, 9, 9.06, 8.57, 
8.57, 8.5, 9.18, 9.54, 9.45, 8.01, 8.34, 8.21, 8.91, 9.08, 9.24, 
8.61, 8.63, 8.67, 8.17, 8.38, 8.22, 9.22, 9.37, 9.54, 8.46, 8.68, 
8.64, 10.33, 10.53, 10.71, 7.75, 8.08, 7.87, 10.1, 10.6, 10.72, 
8.24, 8.51, 8.71, 8.97, 9.25, 9.3, 8.92, 8.28, 8.11, 6.72, 7.97, 
8.03, 8.76, 9.05, 9.18, 8.67, 9.06, 8.59, 7.02, 7.72, 8.62, 9.02, 
8.62, 9.12, 8.82, 9.02, 9.02, 9.22, 7.82, 7.82, 7.52, 7.52, 8.82, 
9.22, 8.22, 7.92, 7.52, 7.92, 8.62, 8.82, 9.42, 9.52, 8.12, 8.52, 
8.72, 9.22, 8.42, 8.42, 8.92, 9.42, 8.42, 8.72, 9.22, 9.42, 8.42, 
9.02, 8.92, 8.92, 9.22, 9.32, 8.22, 8.12, 7.82, 7.92, 8.22, 8.82, 
8.52, 8.72, 9.92, 9.82, 8.32, 9.12, 8.72, 8.92, 9.12, 9.42, 8.52, 
9.32, 8.32, 8.42, 8.22, 8.52, 9.52, 9.92, 7.92, 8.22, 9.32, 10.42, 
8.22, 9.82, 8.42, 8.52, 8.22, 8.72, 9.12, 7.52, 7.82, 8.02, 8.32, 
8.52, 8.22, 8.62, 9.62, 8.52, 8.72, 8.82, 8.82, 8.62, 8.62, 8.92, 
9.42, 8.32, 8.42, 8.72, 9.02, 8.62, 8.62, 8.32, 8.42, 8.72, 9.12, 
8.42, 8.52), time = structure(c(1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 2L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 
3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 
3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 
3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 
3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L), .Label = c("Baseline", "Visit 2", 
"Visit 3"), class = "factor")), row.names = c(NA, 416L), class = "data.frame")

Generalized avatar Mar 05 '21 02:03 Generalized

Hi, thanks for pointing this out! The nudge parameter wasn't added to both xmaxv and xminv. I've fixed this in b34a203

Running the same example now, I get:

image

erocoar avatar Mar 06 '21 12:03 erocoar

Thank you for a quick reaction!

By the way, do you plan to release it to the CRAN in, say, the next month or two? (I am asking because of working in a controlled environment, where CRAN is a preferred source of packages).

Generalized avatar Mar 09 '21 06:03 Generalized