6 April 2021 GC, R code to make output violin plot
library("readxl")
library('data.table')
library("ggplot2")
read_output <- function(path_in) {
dt <- read_excel(path_in)
dt <- dt[ -c(1)]
# rename columns
clm = colnames(dt)
clm= clm[-c(1, 2)]
newco <- c()
for (fb in clm){
f <- strsplit(fb, "_")[[1]][1]
newco <- c(newco, f)
}
newco <- c('Study_ID', 'Device', newco)
print(newco)
colnames(dt) <- newco
return(dt)
}
path1 <- '/media/guido/LACIE/Cingle_Guido/Master/Headband/BCD_band_output.xlsx'
bcd_output <- read_output(path1)
bcd_output
New names: * `` -> ...1
[1] "Study_ID" "Device" "250" "315" "400" "500" [7] "630" "800" "1000" "1250" "1600" "2000" [13] "2500" "3150" "4000" "5000" "6300" "8000"
Study_ID | Device | 250 | 315 | 400 | 500 | 630 | 800 | 1000 | 1250 | 1600 | 2000 | 2500 | 3150 | 4000 | 5000 | 6300 | 8000 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<dbl> | <chr> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> |
1 | BP110 | 69.9 | 77.5 | 84.5 | 89.4 | 95.7 | 96.4 | 90.2 | 85.0 | 84.2 | 80.2 | 75.9 | 74.5 | 72.2 | 71.3 | 69.8 | 62.5 |
2 | BP110 | 64.6 | 70.6 | 76.5 | 84.6 | 93.2 | 95.7 | 91.0 | 89.1 | 88.9 | 84.3 | 77.3 | 73.8 | 68.5 | 65.9 | 62.9 | 55.4 |
3 | BP110 | 63.7 | 74.4 | 82.6 | 89.8 | 96.9 | 98.4 | 91.9 | 87.0 | 85.5 | 81.2 | 76.5 | 75.4 | 73.3 | 72.2 | 70.2 | 63.9 |
4 | BP110 | 60.2 | 66.5 | 72.5 | 80.3 | 89.0 | 92.3 | 88.4 | 86.8 | 87.0 | 82.3 | 75.0 | 71.5 | 66.0 | 63.3 | 59.7 | 51.7 |
5 | BP110 | 62.7 | 72.6 | 80.7 | 87.5 | 95.0 | 96.3 | 90.6 | 85.7 | 84.7 | 80.8 | 76.3 | 74.9 | 72.8 | 71.9 | 70.5 | 64.0 |
6 | BP110 | 64.3 | 73.3 | 81.2 | 87.5 | 94.5 | 95.6 | 89.8 | 84.7 | 83.3 | 78.3 | 71.4 | 70.6 | 70.7 | 69.6 | 67.4 | 60.8 |
7 | BP110 | 63.7 | 73.0 | 81.0 | 87.5 | 94.8 | 96.0 | 90.5 | 85.7 | 84.8 | 80.8 | 76.3 | 74.8 | 72.7 | 71.9 | 70.7 | 64.1 |
8 | BP110 | 62.6 | 72.3 | 80.5 | 87.3 | 95.0 | 96.2 | 90.5 | 85.7 | 84.8 | 80.9 | 76.3 | 74.9 | 72.7 | 71.6 | 69.6 | 62.9 |
9 | BP110 | 63.7 | 73.2 | 81.3 | 88.0 | 95.4 | 96.5 | 90.8 | 85.7 | 84.7 | 80.8 | 76.4 | 74.9 | 72.8 | 72.0 | 70.7 | 64.1 |
10 | BP110 | 61.5 | 72.9 | 81.7 | 89.6 | 96.8 | 98.7 | 92.6 | 87.9 | 86.8 | 82.7 | 77.9 | 76.4 | 74.7 | 73.8 | 71.3 | 65.2 |
11 | BP110 | 61.3 | 72.8 | 81.8 | 89.6 | 96.8 | 98.7 | 92.6 | 87.9 | 86.8 | 82.6 | 77.9 | 76.5 | 74.8 | 74.0 | 71.3 | 65.3 |
12 | BP110 | 60.9 | 72.4 | 81.3 | 89.3 | 96.6 | 98.6 | 92.5 | 87.9 | 86.8 | 82.6 | 77.9 | 76.4 | 74.7 | 73.2 | 69.9 | 64.3 |
13 | BP110 | 60.8 | 72.4 | 81.3 | 89.3 | 96.6 | 98.5 | 92.6 | 87.9 | 86.8 | 82.6 | 77.9 | 76.4 | 74.7 | 73.9 | 71.3 | 65.3 |
14 | BP110 | 62.5 | 72.4 | 80.8 | 88.0 | 95.2 | 96.6 | 91.3 | 86.6 | 86.0 | 82.0 | 77.2 | 75.9 | 74.0 | 73.4 | 71.6 | 64.0 |
15 | BP110 | 61.6 | 72.8 | 81.7 | 89.6 | 96.4 | 97.8 | 91.6 | 87.0 | 86.1 | 82.1 | 77.4 | 75.8 | 74.0 | 73.2 | 70.8 | 64.6 |
16 | BP110 | 61.4 | 72.9 | 82.1 | 90.3 | 97.4 | 98.9 | 92.6 | 88.0 | 86.9 | 82.8 | 78.3 | 76.7 | 74.9 | 74.2 | 71.7 | 65.4 |
17 | BP110 | 65.5 | 74.6 | 82.7 | 89.0 | 95.7 | 96.7 | 91.1 | 86.3 | 85.4 | 81.5 | 77.0 | 75.6 | 73.6 | 73.0 | 71.4 | 64.2 |
18 | BP110 | 63.8 | 73.5 | 81.9 | 88.6 | 95.6 | 96.7 | 91.1 | 86.3 | 85.4 | 81.5 | 76.9 | 75.5 | 73.6 | 72.9 | 71.5 | 64.2 |
19 | BP110 | 67.8 | 75.3 | 82.1 | 86.9 | 93.1 | 94.1 | 88.6 | 83.4 | 82.4 | 78.4 | 74.6 | 73.4 | 70.5 | 69.5 | 67.8 | 60.7 |
20 | BP110 | 65.3 | 74.5 | 82.4 | 88.7 | 95.7 | 96.7 | 91.0 | 86.2 | 85.4 | 81.5 | 76.9 | 75.5 | 73.6 | 72.8 | 71.3 | 64.2 |
21 | BAHA5P | 53.7 | 55.5 | 59.5 | 75.6 | 83.4 | 84.2 | 81.2 | 83.1 | 85.5 | 82.7 | 81.9 | 82.3 | 79.0 | 75.9 | 73.1 | 64.1 |
22 | BP110 | 60.9 | 72.7 | 82.2 | 90.4 | 97.4 | 99.0 | 92.9 | 88.4 | 87.3 | 83.2 | 78.5 | 76.9 | 75.4 | 74.7 | 71.9 | 65.6 |
23 | BP110 | 61.3 | 72.9 | 82.5 | 90.5 | 97.4 | 99.1 | 92.9 | 88.4 | 87.4 | 83.3 | 78.6 | 77.0 | 75.4 | 74.6 | 71.9 | 65.8 |
24 | BP110 | 64.1 | 73.3 | 80.9 | 86.8 | 93.8 | 95.1 | 89.6 | 84.8 | 83.7 | 79.5 | 75.0 | 73.8 | 71.5 | 70.6 | 69.8 | 63.2 |
25 | BP110 | 64.7 | 72.7 | 81.1 | 89.0 | 96.3 | 97.6 | 92.0 | 87.2 | 86.2 | 81.8 | 76.2 | 74.2 | 71.8 | 71.7 | 70.7 | 59.8 |
26 | BP110 | 60.6 | 72.3 | 81.5 | 89.6 | 96.8 | 98.8 | 92.5 | 87.9 | 86.9 | 82.7 | 78.0 | 76.3 | 74.6 | 73.7 | 71.2 | 65.0 |
27 | BP110 | 61.2 | 72.8 | 81.8 | 89.8 | 96.9 | 98.8 | 92.5 | 88.0 | 86.9 | 82.7 | 78.0 | 76.3 | 74.6 | 73.7 | 71.1 | 65.1 |
28 | BP110 | 62.4 | 68.8 | 75.5 | 83.8 | 92.5 | 95.4 | 91.2 | 89.5 | 89.6 | 85.2 | 78.5 | 74.9 | 69.5 | 67.2 | 63.5 | 55.0 |
29 | BP110 | 65.1 | 74.2 | 82.0 | 88.3 | 95.5 | 96.7 | 91.1 | 86.1 | 85.3 | 81.4 | 77.0 | 75.7 | 73.6 | 72.7 | 71.1 | 64.2 |
30 | BP110 | 66.4 | 75.2 | 83.1 | 89.0 | 96.1 | 97.0 | 91.1 | 86.2 | 85.3 | 81.3 | 77.0 | 75.7 | 73.6 | 72.7 | 70.9 | 64.0 |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
56 | BAHA5P | 54.5 | 57.6 | 68.6 | 83.7 | 90.7 | 90.7 | 86.8 | 88.0 | 92.3 | 90.9 | 86.1 | 84.7 | 83.9 | 83.0 | 81.6 | 72.8 |
57 | BAHA5P | 54.8 | 58.2 | 68.0 | 82.8 | 89.6 | 89.2 | 85.4 | 88.1 | 91.3 | 88.5 | 83.5 | 81.7 | 78.5 | 75.9 | 73.5 | 64.3 |
58 | BAHA5P | 54.1 | 57.3 | 66.2 | 80.8 | 88.0 | 88.4 | 86.1 | 89.9 | 91.6 | 86.7 | 81.9 | 81.6 | 79.3 | 77.4 | 76.4 | 67.7 |
59 | BAHA5P | 54.6 | 58.3 | 65.7 | 79.7 | 86.9 | 86.9 | 82.4 | 82.0 | 85.0 | 83.8 | 82.3 | 82.0 | 78.9 | 75.3 | 72.4 | 63.0 |
60 | BAHA5P | 54.2 | 57.6 | 67.8 | 82.0 | 89.0 | 88.9 | 84.0 | 82.6 | 85.2 | 84.9 | 84.1 | 84.3 | 82.7 | 80.4 | 77.7 | 68.3 |
61 | BAHA5P | 59.1 | 63.2 | 72.3 | 85.9 | 91.9 | 90.3 | 84.5 | 86.4 | 91.9 | 90.7 | 85.7 | 84.2 | 82.6 | 80.4 | 77.1 | 67.7 |
62 | BAHA5P | 54.9 | 59.8 | 67.7 | 81.2 | 88.4 | 89.0 | 87.3 | 91.8 | 94.1 | 90.0 | 83.2 | 81.3 | 76.9 | 72.4 | 68.9 | 59.1 |
63 | BAHA5P | 55.0 | 59.6 | 69.1 | 83.3 | 90.3 | 90.4 | 86.8 | 87.5 | 88.6 | 85.4 | 83.6 | 84.7 | 84.3 | 82.2 | 78.7 | 69.3 |
64 | BAHA5P | 55.3 | 60.1 | 69.2 | 83.4 | 90.5 | 90.8 | 88.8 | 92.1 | 92.5 | 85.2 | 76.5 | 78.2 | 80.7 | 81.4 | 81.2 | 72.4 |
65 | BAHA5P | 54.7 | 57.5 | 67.5 | 82.4 | 89.5 | 89.7 | 85.9 | 86.9 | 89.5 | 87.4 | 84.8 | 84.6 | 82.5 | 79.9 | 76.9 | 67.6 |
66 | BAHA5P | 54.0 | 58.2 | 66.9 | 81.3 | 88.3 | 88.5 | 85.6 | 87.9 | 89.0 | 83.2 | 74.9 | 77.1 | 81.3 | 81.6 | 80.4 | 71.8 |
67 | BAHA5P | 53.8 | 56.9 | 67.1 | 81.7 | 88.7 | 88.4 | 83.4 | 81.9 | 82.2 | 80.1 | 80.2 | 80.1 | 75.7 | 71.4 | 68.7 | 59.4 |
68 | BAHA5P | 54.6 | 57.2 | 65.7 | 80.4 | 87.3 | 87.1 | 83.0 | 84.5 | 85.5 | 80.9 | 79.8 | 81.0 | 79.4 | 76.8 | 74.7 | 65.6 |
69 | BAHA5P | 53.2 | 55.7 | 65.8 | 81.0 | 88.2 | 88.5 | 84.7 | 85.7 | 87.0 | 83.3 | 81.4 | 82.2 | 80.9 | 78.0 | 75.0 | 65.5 |
70 | BAHA5P | 50.8 | 51.8 | 61.1 | 75.7 | 82.6 | 82.7 | 80.2 | 84.6 | 88.4 | 85.7 | 79.8 | 77.4 | 74.1 | 72.0 | 70.0 | 60.7 |
71 | BAHA5P | 58.0 | 63.3 | 72.5 | 85.5 | 90.8 | 87.6 | 79.7 | 82.1 | 87.7 | 86.5 | 83.4 | 82.0 | 78.0 | 74.0 | 70.8 | 61.4 |
72 | BAHA5P | 53.3 | 55.1 | 65.2 | 81.3 | 88.5 | 88.5 | 84.2 | 83.7 | 87.0 | 86.6 | 84.4 | 83.9 | 81.6 | 79.3 | 76.5 | 67.2 |
73 | BAHA5P | 52.7 | 55.7 | 66.7 | 80.6 | 86.5 | 85.0 | 78.5 | 77.2 | 79.3 | 77.4 | 74.8 | 73.9 | 69.9 | 67.0 | 64.9 | 55.7 |
74 | BAHA5P | 54.9 | 59.3 | 68.2 | 82.5 | 89.2 | 89.1 | 86.8 | 90.9 | 92.6 | 87.1 | 82.2 | 82.3 | 80.4 | 79.5 | 79.1 | 70.5 |
75 | BAHA5P | 52.8 | 55.2 | 64.0 | 79.7 | 86.9 | 86.9 | 83.4 | 84.7 | 84.4 | 78.0 | 73.4 | 76.1 | 78.1 | 77.9 | 76.6 | 67.5 |
76 | BAHA5P | 53.7 | 57.6 | 67.9 | 81.4 | 87.2 | 85.9 | 80.9 | 84.6 | 89.6 | 88.0 | 83.1 | 81.6 | 79.8 | 77.8 | 75.1 | 65.7 |
77 | BAHA5P | 55.7 | 59.8 | 70.4 | 84.2 | 90.7 | 90.4 | 87.1 | 90.8 | 93.9 | 90.3 | 85.4 | 84.6 | 82.5 | 80.3 | 77.9 | 68.3 |
78 | BAHA5P | 53.2 | 55.1 | 65.5 | 80.8 | 87.9 | 88.1 | 84.5 | 85.8 | 88.4 | 86.7 | 83.8 | 83.0 | 79.8 | 77.3 | 74.9 | 65.8 |
79 | BAHA5P | 53.3 | 55.7 | 64.1 | 80.0 | 87.5 | 87.9 | 85.1 | 88.1 | 90.4 | 87.0 | 83.1 | 82.7 | 80.4 | 77.6 | 74.8 | 65.2 |
80 | BAHA5P | 52.6 | 54.8 | 63.3 | 79.5 | 86.9 | 87.2 | 83.0 | 82.6 | 83.9 | 81.6 | 81.5 | 82.8 | 81.8 | 79.4 | 76.6 | 66.9 |
81 | BAHA5P | 53.2 | 56.1 | 67.5 | 82.7 | 89.7 | 89.9 | 87.2 | 90.1 | 92.1 | 87.4 | 78.5 | 78.4 | 80.4 | 78.1 | 73.0 | 62.3 |
82 | BAHA5P | 54.1 | 57.9 | 67.8 | 81.2 | 86.9 | 85.4 | 80.2 | 83.3 | 86.6 | 83.7 | 82.5 | 83.8 | 83.1 | 80.9 | 78.3 | 69.0 |
83 | BAHA5P | 53.9 | 56.3 | 64.7 | 79.6 | 86.6 | 86.5 | 82.2 | 81.5 | 81.2 | 75.9 | 74.8 | 78.4 | 80.5 | 79.1 | 75.9 | 66.2 |
84 | BAHA5P | 53.6 | 57.7 | 69.3 | 83.2 | 89.6 | 89.3 | 85.2 | 88.3 | 92.9 | 91.0 | 85.6 | 83.7 | 81.8 | 78.4 | 74.2 | 64.0 |
85 | BAHA5P | 52.8 | 54.8 | 65.2 | 80.9 | 88.3 | 89.0 | 86.4 | 89.1 | 90.0 | 83.6 | 76.3 | 78.6 | 81.4 | 80.5 | 78.3 | 68.9 |
output_long <- melt(setDT(bcd_output), id.vars = c('Study_ID', 'Device'),
value.name = 'Output', variable.name = 'Frequency_band')
output_long
Study_ID | Device | Frequency_band | Output |
---|---|---|---|
<dbl> | <chr> | <fct> | <dbl> |
1 | BP110 | 250 | 69.9 |
2 | BP110 | 250 | 64.6 |
3 | BP110 | 250 | 63.7 |
4 | BP110 | 250 | 60.2 |
5 | BP110 | 250 | 62.7 |
6 | BP110 | 250 | 64.3 |
7 | BP110 | 250 | 63.7 |
8 | BP110 | 250 | 62.6 |
9 | BP110 | 250 | 63.7 |
10 | BP110 | 250 | 61.5 |
11 | BP110 | 250 | 61.3 |
12 | BP110 | 250 | 60.9 |
13 | BP110 | 250 | 60.8 |
14 | BP110 | 250 | 62.5 |
15 | BP110 | 250 | 61.6 |
16 | BP110 | 250 | 61.4 |
17 | BP110 | 250 | 65.5 |
18 | BP110 | 250 | 63.8 |
19 | BP110 | 250 | 67.8 |
20 | BP110 | 250 | 65.3 |
21 | BAHA5P | 250 | 53.7 |
22 | BP110 | 250 | 60.9 |
23 | BP110 | 250 | 61.3 |
24 | BP110 | 250 | 64.1 |
25 | BP110 | 250 | 64.7 |
26 | BP110 | 250 | 60.6 |
27 | BP110 | 250 | 61.2 |
28 | BP110 | 250 | 62.4 |
29 | BP110 | 250 | 65.1 |
30 | BP110 | 250 | 66.4 |
⋮ | ⋮ | ⋮ | ⋮ |
56 | BAHA5P | 8000 | 72.8 |
57 | BAHA5P | 8000 | 64.3 |
58 | BAHA5P | 8000 | 67.7 |
59 | BAHA5P | 8000 | 63.0 |
60 | BAHA5P | 8000 | 68.3 |
61 | BAHA5P | 8000 | 67.7 |
62 | BAHA5P | 8000 | 59.1 |
63 | BAHA5P | 8000 | 69.3 |
64 | BAHA5P | 8000 | 72.4 |
65 | BAHA5P | 8000 | 67.6 |
66 | BAHA5P | 8000 | 71.8 |
67 | BAHA5P | 8000 | 59.4 |
68 | BAHA5P | 8000 | 65.6 |
69 | BAHA5P | 8000 | 65.5 |
70 | BAHA5P | 8000 | 60.7 |
71 | BAHA5P | 8000 | 61.4 |
72 | BAHA5P | 8000 | 67.2 |
73 | BAHA5P | 8000 | 55.7 |
74 | BAHA5P | 8000 | 70.5 |
75 | BAHA5P | 8000 | 67.5 |
76 | BAHA5P | 8000 | 65.7 |
77 | BAHA5P | 8000 | 68.3 |
78 | BAHA5P | 8000 | 65.8 |
79 | BAHA5P | 8000 | 65.2 |
80 | BAHA5P | 8000 | 66.9 |
81 | BAHA5P | 8000 | 62.3 |
82 | BAHA5P | 8000 | 69.0 |
83 | BAHA5P | 8000 | 66.2 |
84 | BAHA5P | 8000 | 64.0 |
85 | BAHA5P | 8000 | 68.9 |
# Make plots wider
options(repr.plot.width=9, repr.plot.height=6)
ttl <- 'Output BCDs on skull simulator, ISTS 65 dB'
dodge <- position_dodge(width = 0.6)
ColorBlind2 <- c("#E69F00", "#56B4E9")
p <- ggplot(output_long, aes(x=Frequency_band, y=Output, fill=Device))+
geom_violin(position = dodge)+
geom_boxplot(width=.2, outlier.colour=NA, position = dodge)
#ggsave("Grouped_Violinplot_ggplot2_R.png")
p <- p + theme_linedraw() + scale_fill_manual(values=ColorBlind2)
#stat_summary(fun.data=mean_sdl, geom="pointrange", color="black", position = dodge)
p <- p + ggtitle("") + xlab("CF 1/3 octave band [Hz]") + ylab("Output BCD on skull simulator [dB ref 1 μN]")
p <- p + theme(plot.margin = margin(1, 1, 1, 1, "cm"),
legend.position = c(0.29, 0.19),
legend.background = element_rect(size=0.3, linetype="solid", colour ="black"),
legend.title = element_text(colour="black", size=14, face="plain", margin=margin(0.25, 0.25, 0, 1.1, 'cm')),
legend.text = element_text(colour="black", size=12, margin=margin(0.25, 0.25, 0.25, 0.25, 'cm')),
legend.margin = margin(0.25, 0.25, 0.25, 0.25, 'cm'),
plot.title = element_text(colour="black", size=16, face="bold", hjust=0.5, vjust=1),
axis.title.x = element_text(colour="black", size=15, face="plain", hjust=0.5, margin = margin(t = .8, r = 0, b = 0, l = 0, 'cm')),
axis.title.y = element_text(colour="black", size=15, face="plain", hjust=0.5, vjust=0.5, margin = margin(t = 0, r = .8, b = 0, l = 0, 'cm')),
axis.text.x = element_text(colour = "black", size = 11, vjust=0),
axis.text.y = element_text(colour = "black", size = 11, hjust=0))
p
tiff("/home/guido/R/cingle/figures/output_violin.tiff", units="in", width=9, height=6, res=300)
p
dev.off()