Related
I am trying to execute linear-mixed models with 3 factors as groups. However running the syntax, I just get 2 terms: time:grup_int2 or time:grup_int3 as you can see in the picture. There should be another term for time:grup_int1. My reference factor group is the level 1, however I don't know how to relevel in the loop, and I intended to post a example with a database provided by the package. The problem is with the database provided by the package works... and I get 3 terms
My code with genes_wide dataframe (plenty of NAs)
#pivot wider to make horizontal data
genes_wide <- genes1 %>% pivot_wider(names_from = gen, values_from = dCt)
genes_wide$time [genes_wide$time == "1"] <- 1
genes_wide$time [genes_wide$time == "3"] <- 3
genes_wide$time<-as.numeric(genes_wide$time)
# if they need to be relevel
#genes_wide$grup_int <- relevel(genes_wide$grup_int, "2")
# names of variables
genes.names <- colnames(genes_wide)[13:67]
no.genes <- length(genes.names)
# create a named list to hold the fitted models
gene.list <- as.list(1:no.genes)
names(gene.list) <- genes.names
# loop over gene names
for(i in genes.names){
# create temporary data matrix and model formula
#1st: adjusting per several variables (edad0 = numeric, grup_int = factor, sexo = factor, time = numeric, id = numeric (need to change?)
#2nd: adjusting just per group
tmp <- genes_wide[, c(i, "grup_int","time", "id", "edad0", "sexo")]
fml <- as.formula( paste( i, "~", paste(c("time", "time:grup_int", "edad0", "sexo"), collapse="+")))
gene.list[[i]] <- lme(fml, random= ~ time|id , method="REML", data=tmp, control = lmeControl(opt = "optim"), na.action = na.omit)
}
# List of data.frames/tibble
result <- lapply(gene.list, function(x) tidy(x))
# Solution 2
result <- dplyr::bind_rows(result, .id = "var")
result2 <- result %>% dplyr::select( var, term, p.value)
**
Example database
**
However running the exact syntax with an example database (+ 5 variables to iterate) from the nlme package, the result is different
#adding variables to df problem
BodyWeight$var1 <- rnorm(176, 47 ,3)
BodyWeight$var2 <- rnorm(176, 50 ,10)
BodyWeight$var3 <- rnorm(176, 68, 7)
BodyWeight$var4 <- rnorm(176, 150 ,10)
BodyWeight$var5 <- rnorm(176, 140, 7)
# names of variables
var.names <- colnames(BodyWeight)[5:9]
no.var <- length(var.names)
# create a named list to hold the fitted models
var.list <- as.list(1:no.var)
names(var.list) <- var.names
# loop over gene names
for(i in var.names){
#2nd: adjusting just per group
tmp <- BodyWeight[, c(i, "Diet","Time", "Rat", "weight")]
fml <- as.formula( paste( i, "~", paste(c("Time:Diet", "weight"), collapse="+")))
var.list[[i]] <- lme(fml, random= ~ Time|Rat , method="REML", data=tmp, control = lmeControl(opt = "optim"), na.action = na.omit)
}
# List of data.frames/tibble
result <- lapply(var.list, function(x) tidy(x))
# Solution
result <- dplyr::bind_rows(result, .id = "var")
result2 <- result %>% dplyr::select( var, term, p.value)
As you can see I get 3 terms:
Time:Diet1
Time:Diet2
Time:Diet3
My original database is made up by more variables, but time is numeric, as well as grouping variables are factor (grup_int and Diet respectively). The original database contains NAs
I was wondering if it is possible to relevel to get the interaction remaining
UPDATE
I don't know how to put in words, what is happening when I get this:
What does it mean? time:grup_int1 is significant but time:grup_int2 not? Is time:grup_int1 the meaning for statistical differences between group 1 ant the others groups (2 and 3) across time ? It doesn't make any sense to be significant for one but not for the others. How can I get an overall p-value comparison between groups?
The df used for the loop
structure(list(weight = c(240, 250, 255, 260, 262, 258, 266,
266, 265, 272, 278, 225, 230, 230, 232, 240, 240, 243, 244, 238,
247, 245, 245, 250, 250, 255, 262, 265, 267, 267, 264, 268, 269,
260, 255, 255, 265, 265, 268, 270, 272, 274, 273, 275, 255, 260,
255, 270, 270, 273, 274, 273, 276, 278, 280, 260, 265, 270, 275,
275, 277, 278, 278, 284, 279, 281, 275, 275, 260, 270, 273, 274,
276, 271, 282, 281, 284, 245, 255, 260, 268, 270, 265, 265, 267,
273, 274, 278, 410, 415, 425, 428, 438, 443, 442, 446, 456, 468,
478, 405, 420, 430, 440, 448, 460, 458, 464, 475, 484, 496, 445,
445, 450, 452, 455, 455, 451, 450, 462, 466, 472, 555, 560, 565,
580, 590, 597, 595, 595, 612, 618, 628, 470, 465, 475, 485, 487,
493, 493, 504, 507, 518, 525, 535, 525, 530, 533, 535, 540, 525,
530, 543, 544, 559, 520, 525, 530, 540, 543, 546, 538, 544, 553,
555, 548, 510, 510, 520, 515, 530, 538, 535, 542, 550, 553, 569
), Time = c(1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64), Rat = structure(c(4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L,
11L, 11L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 12L, 12L,
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 13L,
13L, 13L, 13L, 13L, 13L, 13L, 13L, 15L, 15L, 15L, 15L, 15L, 15L,
15L, 15L, 15L, 15L, 15L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L,
14L, 14L, 14L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L,
16L), levels = c("2", "3", "4", "1", "8", "5", "6", "7", "11",
"9", "10", "12", "13", "15", "14", "16"), class = c("ordered",
"factor")), Diet = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), levels = c("1", "2", "3"), class = "factor"),
var1 = c(46.804, 45.792, 43.572, 50.587, 52.268, 45.402,
45.996, 48.566, 47.933, 48.336, 43.964, 52.441, 45.077, 45.699,
51.348, 47.888, 50.245, 48.111, 42.373, 44.231, 46.461, 45.639,
44.993, 50.391, 47.997, 48.368, 44.939, 47.805, 49.195, 51.419,
50.242, 45.856, 48.115, 48.053, 44.318, 50.493, 40.48, 47.418,
49.441, 49.414, 49.776, 49.043, 41.456, 48.52, 46.079, 43.058,
43.649, 43.967, 44.799, 48.081, 50.728, 51.207, 50.01, 47.346,
43.816, 52.575, 47.962, 49.061, 45.438, 43.822, 43.022, 48.864,
41.669, 45.58, 42.206, 42.788, 43.988, 46.636, 45.651, 42.502,
42.93, 49.196, 48.314, 46.412, 49.436, 47.193, 48.806, 45.142,
48.4, 48.419, 47.937, 42.605, 46.027, 45.325, 43.811, 45.922,
47.262, 46.566, 47.016, 46.111, 50.573, 47.436, 47.859, 47.839,
48.239, 46.762, 46.581, 55.9, 42.816, 49.636, 47.514, 39.489,
46.513, 49.323, 51.504, 45.558, 42.402, 45.153, 48.632, 47.908,
46.033, 44.963, 49.312, 45.733, 51.149, 45.755, 47.247, 46.674,
49.121, 43.411, 43.735, 44.777, 44.942, 48.207, 50.962, 47.1,
44.167, 50.007, 48.531, 46.749, 47.69, 47.396, 45.074, 49.203,
42.869, 47.713, 46.186, 52.191, 46.809, 47.578, 45.365, 53.228,
45.896, 45.428, 42.702, 47.328, 46.108, 49.857, 45.128, 43.772,
46.479, 51.573, 51.255, 45.33, 45.651, 48.521, 49.006, 51.906,
48.924, 53.693, 48.555, 48.367, 49.659, 47.839, 47.829, 48.212,
45.867, 51.965, 48.275, 49.091, 44.54, 44.978, 50.431, 48.915,
51.569, 46.008), var2 = c(53.273, 35.7, 44.406, 62.644, 42.971,
49.393, 52.585, 30.572, 52.156, 58.566, 44.631, 50.967, 48.583,
60.878, 50.712, 48.741, 47.584, 54.774, 62.288, 49.952, 33.225,
39.251, 53.158, 46.74, 46.796, 40.343, 58.491, 48.12, 41.854,
55.315, 44.553, 55.674, 47.404, 56.085, 53.443, 56.382, 74.641,
44.822, 73.191, 46.409, 66.453, 60.929, 51.394, 56.812, 53.244,
48.993, 54.763, 35.624, 63.346, 38.389, 48.288, 61.422, 45.707,
50.213, 42.629, 64.381, 39.218, 58.923, 61.569, 39.279, 54.748,
63.149, 54.639, 56.494, 66.907, 36.303, 52.297, 46.288, 62.852,
53.063, 43.096, 70.983, 49.175, 43.663, 44.456, 55.17, 51.383,
56.945, 51.471, 49.053, 63.062, 46.386, 48.094, 43.282, 35.509,
48.079, 48.223, 34.605, 42.669, 40.146, 53.089, 40.911, 39.396,
39.507, 41.481, 41.729, 28.367, 62.781, 59.154, 50.788, 84.282,
58.214, 53.404, 46.312, 36.983, 61.712, 53.109, 37.285, 50.834,
32.306, 47.969, 36.232, 46.744, 37.876, 50.369, 59.684, 40.427,
44.2, 46.955, 56.388, 46.667, 46.373, 49.932, 60.3, 27.732,
56.772, 54.569, 45.164, 37.747, 57.827, 49.998, 23.109, 53.339,
51.024, 58.875, 55.315, 40.637, 37.781, 47.209, 57.51, 46.956,
66.715, 51.034, 52.54, 60.342, 34.439, 58.08, 64.298, 56.374,
64.829, 49.392, 48.939, 38.746, 40.048, 46.856, 61.697, 51.253,
54.024, 61.166, 45.834, 43.578, 39.212, 67.632, 35.208, 23.676,
50.577, 46.832, 42.866, 57.808, 53.292, 42.474, 62.779, 34.747,
55.367, 27.928, 57.481), var3 = c(67.483, 67.977, 70.749,
76.851, 77.351, 59.821, 67.203, 72.635, 67.767, 67.627, 64.729,
70.388, 71.889, 61.95, 54.182, 71.049, 56.33, 68.982, 70.615,
68.416, 60.661, 73.205, 68.086, 72.611, 62.082, 74.026, 69.073,
67.488, 79.656, 79.612, 71.016, 61.284, 76.297, 62.713, 79.335,
68.155, 67.184, 73.889, 61.59, 68.273, 57.056, 66.95, 60.504,
77.121, 73.056, 60.739, 75.891, 74.363, 82.829, 86.902, 59.38,
77.63, 67.613, 72.666, 68.903, 71.631, 68.86, 57.653, 65.119,
60.825, 63.301, 64.945, 65.89, 80.092, 79.951, 65.475, 66.491,
72.355, 71.909, 70.339, 83.508, 59.686, 62.102, 67.291, 52.908,
70.508, 63.2, 66.62, 75.138, 72.311, 66.394, 64.812, 74.063,
51.087, 55.095, 56.906, 55.88, 71.916, 81.805, 67.339, 66.459,
70.005, 82.891, 65.456, 86.611, 65.401, 72.647, 59.198, 73.558,
66.536, 69.83, 77.101, 65.494, 62.129, 71.86, 85.406, 70.619,
79.225, 71.806, 62.86, 79.615, 65.049, 63.472, 63.46, 80.215,
74.033, 58.949, 69.519, 66.39, 68.751, 69.356, 75.201, 54.815,
50.592, 76.019, 62.177, 66.677, 69.495, 82.428, 70.743, 59.458,
75.326, 69.615, 67.157, 69.793, 66.205, 75.328, 76.311, 64.36,
62.207, 74.16, 51.799, 66.378, 67.964, 66.937, 59.779, 59.735,
64.992, 66.817, 60.595, 65.388, 50.404, 61.742, 65.789, 77.047,
56.86, 69.756, 66.338, 57.149, 63.407, 73.601, 66.042, 67.421,
51.208, 47.265, 69.465, 63.471, 75.845, 74.938, 69.009, 81.807,
81.195, 64.288, 77.085, 64.698, 65.747), var4 = c(143.048,
139.381, 152.849, 163.726, 155.712, 146.957, 140.231, 148.321,
141.917, 156.873, 165.845, 158.824, 157.305, 144.521, 145.253,
134.892, 153.597, 124.482, 153.096, 134.954, 171.238, 147.43,
150.983, 129.945, 150.652, 142.259, 156.631, 152.215, 152.196,
153.54, 139.712, 168.495, 152.043, 148.538, 164.067, 172.445,
144.175, 144.015, 149.093, 135.921, 156.787, 148.292, 144.958,
137.332, 148.185, 151.678, 160.774, 168.479, 175.839, 148.211,
163.747, 145.416, 131.502, 154.997, 152.35, 125.955, 167.116,
141.734, 135.958, 162.752, 139.482, 149.315, 144.425, 144.654,
160.05, 153.767, 148.532, 143.102, 135.553, 143.305, 153.021,
127.982, 165.047, 144.142, 136.568, 145.793, 143.913, 158.002,
154.043, 167.63, 165.472, 143.681, 166.417, 152.012, 145.843,
144.448, 138.782, 141.475, 150.717, 140.765, 164.657, 133.655,
151.908, 160.084, 138.25, 155.93, 142.756, 170.935, 128.346,
149.986, 154.099, 141.688, 150.616, 149.999, 139.195, 160.921,
148.261, 144.611, 154.183, 157.2, 130.512, 155.004, 125.064,
124.813, 150.074, 145.615, 152.238, 144.241, 149.079, 159.354,
153.398, 146.609, 155.032, 145.522, 143.296, 139.502, 148.944,
143.446, 155.094, 148.208, 154.417, 153.249, 154.544, 140.746,
156.798, 146.069, 134.905, 145.318, 137.198, 142.087, 137.117,
151.782, 147.245, 148.583, 152.535, 151.265, 152.272, 162.014,
150.055, 154.343, 139.717, 148.752, 140.933, 146.761, 145.311,
146.361, 155.264, 154.984, 168.623, 129.31, 147.492, 139.828,
161.22, 145.89, 139.146, 138.104, 148.543, 155.836, 143.594,
159.32, 163.648, 152.058, 160.412, 133, 155.305, 144.094),
var5 = c(135.794, 136.92, 131.548, 132.091, 143.587, 130.393,
133.678, 143.005, 136.036, 128.161, 134.036, 144.237, 125.767,
133.32, 137.047, 140.3, 137.92, 144.883, 140.901, 140.632,
136.315, 138.138, 140.855, 124.721, 143.153, 144.514, 142.092,
144.765, 139.205, 134.905, 141.815, 122.992, 138.249, 125.918,
125.236, 136.503, 137.462, 130.757, 135.141, 135.413, 134.991,
137.143, 153.329, 148.779, 138.249, 133.978, 132.454, 139.955,
122.84, 135.984, 140.941, 134.203, 146.091, 146.766, 136.259,
151.474, 139.683, 132.913, 142.39, 134.625, 124.717, 145.74,
135.647, 135.119, 144.182, 133.961, 130.387, 141.314, 129.26,
127.154, 154.74, 142.327, 142.23, 139.433, 148.245, 132.123,
127.374, 134.518, 133.422, 143.66, 129.306, 138.31, 147.787,
137.415, 138.686, 143.896, 140.973, 128.592, 139.53, 146.29,
145, 129.926, 132.338, 155.193, 132.286, 140.86, 135.343,
137.037, 140.147, 131.872, 137.858, 142.137, 131.587, 121.455,
142.264, 138.533, 138.769, 136.296, 141.055, 133.475, 148.136,
136.175, 143.947, 152.026, 137.649, 142.466, 144.819, 153.745,
138.95, 138.146, 133.404, 147.928, 145.928, 146.421, 145.156,
134.289, 127.955, 148.223, 129.987, 139.295, 141.035, 150.867,
136.412, 139.705, 142.013, 129.377, 143.521, 145.595, 142.936,
137.703, 133.344, 144.46, 143.001, 137.017, 149.985, 144.242,
158.029, 151.835, 133.262, 123.893, 136.338, 143.951, 136.71,
136.007, 147.102, 134.472, 128.058, 145.521, 142.379, 135.869,
144.135, 141.297, 149.133, 134.008, 138.566, 117.773, 151.701,
140.288, 144.17, 140.886, 151.585, 136.438, 150.399, 140.535,
142.601, 136.449)), row.names = c(NA, 176L), class = c("nfnGroupedData",
"nfGroupedData", "groupedData", "data.frame"), outer = ~Diet, formula = weight ~
Time | Rat, labels = list(x = "Time", y = "Body weight"), units = list(
x = "(days)", y = "(g)"), FUN = structure(function (x)
max(x, na.rm = TRUE), source = "function(x) max(x, na.rm = TRUE)"), order.groups = TRUE)
The problem (i.e., difference between what you get in your original model and what you get in the other example you posted) is not because of the levelling of the factors, but because of a difference in model specification. In the first model results you posted you include Time + Time:Diet - the "main effect" of Time and the product regressors with Diet. However in the second set of models - the ones with the dummy data you provided - you do not include the main effect in the model. This is what produces the difference. I show the difference below. First, load the data.
BodyWeight <- structure(list(weight = c(240, 250, 255, 260, 262, 258, 266,
266, 265, 272, 278, 225, 230, 230, 232, 240, 240, 243, 244, 238,
247, 245, 245, 250, 250, 255, 262, 265, 267, 267, 264, 268, 269,
260, 255, 255, 265, 265, 268, 270, 272, 274, 273, 275, 255, 260,
255, 270, 270, 273, 274, 273, 276, 278, 280, 260, 265, 270, 275,
275, 277, 278, 278, 284, 279, 281, 275, 275, 260, 270, 273, 274,
276, 271, 282, 281, 284, 245, 255, 260, 268, 270, 265, 265, 267,
273, 274, 278, 410, 415, 425, 428, 438, 443, 442, 446, 456, 468,
478, 405, 420, 430, 440, 448, 460, 458, 464, 475, 484, 496, 445,
445, 450, 452, 455, 455, 451, 450, 462, 466, 472, 555, 560, 565,
580, 590, 597, 595, 595, 612, 618, 628, 470, 465, 475, 485, 487,
493, 493, 504, 507, 518, 525, 535, 525, 530, 533, 535, 540, 525,
530, 543, 544, 559, 520, 525, 530, 540, 543, 546, 538, 544, 553,
555, 548, 510, 510, 520, 515, 530, 538, 535, 542, 550, 553, 569
), Time = c(1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15,
22, 29, 36, 43, 44, 50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44,
50, 57, 64, 1, 8, 15, 22, 29, 36, 43, 44, 50, 57, 64), Rat = structure(c(4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L,
11L, 11L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 12L, 12L,
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 13L,
13L, 13L, 13L, 13L, 13L, 13L, 13L, 15L, 15L, 15L, 15L, 15L, 15L,
15L, 15L, 15L, 15L, 15L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L,
14L, 14L, 14L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L,
16L), levels = c("2", "3", "4", "1", "8", "5", "6", "7", "11",
"9", "10", "12", "13", "15", "14", "16"), class = c("ordered",
"factor")), Diet = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), levels = c("1", "2", "3"), class = "factor"),
var1 = c(46.804, 45.792, 43.572, 50.587, 52.268, 45.402,
45.996, 48.566, 47.933, 48.336, 43.964, 52.441, 45.077, 45.699,
51.348, 47.888, 50.245, 48.111, 42.373, 44.231, 46.461, 45.639,
44.993, 50.391, 47.997, 48.368, 44.939, 47.805, 49.195, 51.419,
50.242, 45.856, 48.115, 48.053, 44.318, 50.493, 40.48, 47.418,
49.441, 49.414, 49.776, 49.043, 41.456, 48.52, 46.079, 43.058,
43.649, 43.967, 44.799, 48.081, 50.728, 51.207, 50.01, 47.346,
43.816, 52.575, 47.962, 49.061, 45.438, 43.822, 43.022, 48.864,
41.669, 45.58, 42.206, 42.788, 43.988, 46.636, 45.651, 42.502,
42.93, 49.196, 48.314, 46.412, 49.436, 47.193, 48.806, 45.142,
48.4, 48.419, 47.937, 42.605, 46.027, 45.325, 43.811, 45.922,
47.262, 46.566, 47.016, 46.111, 50.573, 47.436, 47.859, 47.839,
48.239, 46.762, 46.581, 55.9, 42.816, 49.636, 47.514, 39.489,
46.513, 49.323, 51.504, 45.558, 42.402, 45.153, 48.632, 47.908,
46.033, 44.963, 49.312, 45.733, 51.149, 45.755, 47.247, 46.674,
49.121, 43.411, 43.735, 44.777, 44.942, 48.207, 50.962, 47.1,
44.167, 50.007, 48.531, 46.749, 47.69, 47.396, 45.074, 49.203,
42.869, 47.713, 46.186, 52.191, 46.809, 47.578, 45.365, 53.228,
45.896, 45.428, 42.702, 47.328, 46.108, 49.857, 45.128, 43.772,
46.479, 51.573, 51.255, 45.33, 45.651, 48.521, 49.006, 51.906,
48.924, 53.693, 48.555, 48.367, 49.659, 47.839, 47.829, 48.212,
45.867, 51.965, 48.275, 49.091, 44.54, 44.978, 50.431, 48.915,
51.569, 46.008), var2 = c(53.273, 35.7, 44.406, 62.644, 42.971,
49.393, 52.585, 30.572, 52.156, 58.566, 44.631, 50.967, 48.583,
60.878, 50.712, 48.741, 47.584, 54.774, 62.288, 49.952, 33.225,
39.251, 53.158, 46.74, 46.796, 40.343, 58.491, 48.12, 41.854,
55.315, 44.553, 55.674, 47.404, 56.085, 53.443, 56.382, 74.641,
44.822, 73.191, 46.409, 66.453, 60.929, 51.394, 56.812, 53.244,
48.993, 54.763, 35.624, 63.346, 38.389, 48.288, 61.422, 45.707,
50.213, 42.629, 64.381, 39.218, 58.923, 61.569, 39.279, 54.748,
63.149, 54.639, 56.494, 66.907, 36.303, 52.297, 46.288, 62.852,
53.063, 43.096, 70.983, 49.175, 43.663, 44.456, 55.17, 51.383,
56.945, 51.471, 49.053, 63.062, 46.386, 48.094, 43.282, 35.509,
48.079, 48.223, 34.605, 42.669, 40.146, 53.089, 40.911, 39.396,
39.507, 41.481, 41.729, 28.367, 62.781, 59.154, 50.788, 84.282,
58.214, 53.404, 46.312, 36.983, 61.712, 53.109, 37.285, 50.834,
32.306, 47.969, 36.232, 46.744, 37.876, 50.369, 59.684, 40.427,
44.2, 46.955, 56.388, 46.667, 46.373, 49.932, 60.3, 27.732,
56.772, 54.569, 45.164, 37.747, 57.827, 49.998, 23.109, 53.339,
51.024, 58.875, 55.315, 40.637, 37.781, 47.209, 57.51, 46.956,
66.715, 51.034, 52.54, 60.342, 34.439, 58.08, 64.298, 56.374,
64.829, 49.392, 48.939, 38.746, 40.048, 46.856, 61.697, 51.253,
54.024, 61.166, 45.834, 43.578, 39.212, 67.632, 35.208, 23.676,
50.577, 46.832, 42.866, 57.808, 53.292, 42.474, 62.779, 34.747,
55.367, 27.928, 57.481), var3 = c(67.483, 67.977, 70.749,
76.851, 77.351, 59.821, 67.203, 72.635, 67.767, 67.627, 64.729,
70.388, 71.889, 61.95, 54.182, 71.049, 56.33, 68.982, 70.615,
68.416, 60.661, 73.205, 68.086, 72.611, 62.082, 74.026, 69.073,
67.488, 79.656, 79.612, 71.016, 61.284, 76.297, 62.713, 79.335,
68.155, 67.184, 73.889, 61.59, 68.273, 57.056, 66.95, 60.504,
77.121, 73.056, 60.739, 75.891, 74.363, 82.829, 86.902, 59.38,
77.63, 67.613, 72.666, 68.903, 71.631, 68.86, 57.653, 65.119,
60.825, 63.301, 64.945, 65.89, 80.092, 79.951, 65.475, 66.491,
72.355, 71.909, 70.339, 83.508, 59.686, 62.102, 67.291, 52.908,
70.508, 63.2, 66.62, 75.138, 72.311, 66.394, 64.812, 74.063,
51.087, 55.095, 56.906, 55.88, 71.916, 81.805, 67.339, 66.459,
70.005, 82.891, 65.456, 86.611, 65.401, 72.647, 59.198, 73.558,
66.536, 69.83, 77.101, 65.494, 62.129, 71.86, 85.406, 70.619,
79.225, 71.806, 62.86, 79.615, 65.049, 63.472, 63.46, 80.215,
74.033, 58.949, 69.519, 66.39, 68.751, 69.356, 75.201, 54.815,
50.592, 76.019, 62.177, 66.677, 69.495, 82.428, 70.743, 59.458,
75.326, 69.615, 67.157, 69.793, 66.205, 75.328, 76.311, 64.36,
62.207, 74.16, 51.799, 66.378, 67.964, 66.937, 59.779, 59.735,
64.992, 66.817, 60.595, 65.388, 50.404, 61.742, 65.789, 77.047,
56.86, 69.756, 66.338, 57.149, 63.407, 73.601, 66.042, 67.421,
51.208, 47.265, 69.465, 63.471, 75.845, 74.938, 69.009, 81.807,
81.195, 64.288, 77.085, 64.698, 65.747), var4 = c(143.048,
139.381, 152.849, 163.726, 155.712, 146.957, 140.231, 148.321,
141.917, 156.873, 165.845, 158.824, 157.305, 144.521, 145.253,
134.892, 153.597, 124.482, 153.096, 134.954, 171.238, 147.43,
150.983, 129.945, 150.652, 142.259, 156.631, 152.215, 152.196,
153.54, 139.712, 168.495, 152.043, 148.538, 164.067, 172.445,
144.175, 144.015, 149.093, 135.921, 156.787, 148.292, 144.958,
137.332, 148.185, 151.678, 160.774, 168.479, 175.839, 148.211,
163.747, 145.416, 131.502, 154.997, 152.35, 125.955, 167.116,
141.734, 135.958, 162.752, 139.482, 149.315, 144.425, 144.654,
160.05, 153.767, 148.532, 143.102, 135.553, 143.305, 153.021,
127.982, 165.047, 144.142, 136.568, 145.793, 143.913, 158.002,
154.043, 167.63, 165.472, 143.681, 166.417, 152.012, 145.843,
144.448, 138.782, 141.475, 150.717, 140.765, 164.657, 133.655,
151.908, 160.084, 138.25, 155.93, 142.756, 170.935, 128.346,
149.986, 154.099, 141.688, 150.616, 149.999, 139.195, 160.921,
148.261, 144.611, 154.183, 157.2, 130.512, 155.004, 125.064,
124.813, 150.074, 145.615, 152.238, 144.241, 149.079, 159.354,
153.398, 146.609, 155.032, 145.522, 143.296, 139.502, 148.944,
143.446, 155.094, 148.208, 154.417, 153.249, 154.544, 140.746,
156.798, 146.069, 134.905, 145.318, 137.198, 142.087, 137.117,
151.782, 147.245, 148.583, 152.535, 151.265, 152.272, 162.014,
150.055, 154.343, 139.717, 148.752, 140.933, 146.761, 145.311,
146.361, 155.264, 154.984, 168.623, 129.31, 147.492, 139.828,
161.22, 145.89, 139.146, 138.104, 148.543, 155.836, 143.594,
159.32, 163.648, 152.058, 160.412, 133, 155.305, 144.094),
var5 = c(135.794, 136.92, 131.548, 132.091, 143.587, 130.393,
133.678, 143.005, 136.036, 128.161, 134.036, 144.237, 125.767,
133.32, 137.047, 140.3, 137.92, 144.883, 140.901, 140.632,
136.315, 138.138, 140.855, 124.721, 143.153, 144.514, 142.092,
144.765, 139.205, 134.905, 141.815, 122.992, 138.249, 125.918,
125.236, 136.503, 137.462, 130.757, 135.141, 135.413, 134.991,
137.143, 153.329, 148.779, 138.249, 133.978, 132.454, 139.955,
122.84, 135.984, 140.941, 134.203, 146.091, 146.766, 136.259,
151.474, 139.683, 132.913, 142.39, 134.625, 124.717, 145.74,
135.647, 135.119, 144.182, 133.961, 130.387, 141.314, 129.26,
127.154, 154.74, 142.327, 142.23, 139.433, 148.245, 132.123,
127.374, 134.518, 133.422, 143.66, 129.306, 138.31, 147.787,
137.415, 138.686, 143.896, 140.973, 128.592, 139.53, 146.29,
145, 129.926, 132.338, 155.193, 132.286, 140.86, 135.343,
137.037, 140.147, 131.872, 137.858, 142.137, 131.587, 121.455,
142.264, 138.533, 138.769, 136.296, 141.055, 133.475, 148.136,
136.175, 143.947, 152.026, 137.649, 142.466, 144.819, 153.745,
138.95, 138.146, 133.404, 147.928, 145.928, 146.421, 145.156,
134.289, 127.955, 148.223, 129.987, 139.295, 141.035, 150.867,
136.412, 139.705, 142.013, 129.377, 143.521, 145.595, 142.936,
137.703, 133.344, 144.46, 143.001, 137.017, 149.985, 144.242,
158.029, 151.835, 133.262, 123.893, 136.338, 143.951, 136.71,
136.007, 147.102, 134.472, 128.058, 145.521, 142.379, 135.869,
144.135, 141.297, 149.133, 134.008, 138.566, 117.773, 151.701,
140.288, 144.17, 140.886, 151.585, 136.438, 150.399, 140.535,
142.601, 136.449)), row.names = c(NA, 176L), class = c("nfnGroupedData",
"nfGroupedData", "groupedData", "data.frame"), outer = ~Diet, formula = weight ~
Time | Rat, labels = list(x = "Time", y = "Body weight"), units = list(
x = "(days)", y = "(g)"), FUN = structure(function (x)
max(x, na.rm = TRUE), source = "function(x) max(x, na.rm = TRUE)"), order.groups = TRUE)
Here is the model without the main effect of Time. You can see, you get the desired result - coefficients for each value of Diet.
library(name)
mod0 <- lme(var1 ~ Time:Diet + weight, random= ~ Time|Rat , method="REML", data=BodyWeight, control = lmeControl(opt = "optim"), na.action = na.omit)
summary(mod0)
#> Linear mixed-effects model fit by REML
#> Data: BodyWeight
#> AIC BIC logLik
#> 905.3992 933.6741 -443.6996
#>
#> Random effects:
#> Formula: ~Time | Rat
#> Structure: General positive-definite, Log-Cholesky parametrization
#> StdDev Corr
#> (Intercept) 0.73280912 (Intr)
#> Time 0.02632007 -0.912
#> Residual 2.73566273
#>
#> Fixed effects: var1 ~ Time:Diet + weight
#> Value Std.Error DF t-value p-value
#> (Intercept) 46.94072 1.3142431 156 35.71692 0.0000
#> weight 0.00016 0.0033845 156 0.04685 0.9627
#> Time:Diet1 -0.00470 0.0160669 156 -0.29282 0.7701
#> Time:Diet2 0.00369 0.0194774 156 0.18956 0.8499
#> Time:Diet3 0.02582 0.0213189 156 1.21119 0.2277
#> Correlation:
#> (Intr) weight Tm:Dt1 Tm:Dt2
#> weight -0.940
#> Time:Diet1 -0.698 0.497
#> Time:Diet2 0.311 -0.533 0.109
#> Time:Diet3 0.422 -0.635 0.026 0.620
#>
#> Standardized Within-Group Residuals:
#> Min Q1 Med Q3 Max
#> -2.75835293 -0.70479591 0.02987446 0.58694850 3.08058470
#>
#> Number of Observations: 176
#> Number of Groups: 16
Now, let's look at the model specified with the Time main effect as well. Here, you can see that you get the Time coefficient and one for all but the reference level of Diet interacted with Time. The omission comes because Time = Time:Diet1 + Time:Diet2 + Time:Diet3, so these four terms are perfectly collinear.
mod1 <- lme(var1 ~ Time + Time:Diet + weight, random= ~ Time|Rat , method="REML", data=BodyWeight, control = lmeControl(opt = "optim"), na.action = na.omit)
summary(mod1)
#> Linear mixed-effects model fit by REML
#> Data: BodyWeight
#> AIC BIC logLik
#> 905.3992 933.6741 -443.6996
#>
#> Random effects:
#> Formula: ~Time | Rat
#> Structure: General positive-definite, Log-Cholesky parametrization
#> StdDev Corr
#> (Intercept) 0.73280912 (Intr)
#> Time 0.02632007 -0.912
#> Residual 2.73566273
#>
#> Fixed effects: var1 ~ Time + Time:Diet + weight
#> Value Std.Error DF t-value p-value
#> (Intercept) 46.94072 1.3142431 156 35.71692 0.0000
#> Time -0.00470 0.0160669 156 -0.29282 0.7701
#> weight 0.00016 0.0033845 156 0.04685 0.9627
#> Time:Diet2 0.00840 0.0238626 156 0.35188 0.7254
#> Time:Diet3 0.03053 0.0263585 156 1.15811 0.2486
#> Correlation:
#> (Intr) Time weight Tm:Dt2
#> Time -0.698
#> weight -0.940 0.497
#> Time:Diet2 0.724 -0.585 -0.770
#> Time:Diet3 0.767 -0.588 -0.816 0.752
#>
#> Standardized Within-Group Residuals:
#> Min Q1 Med Q3 Max
#> -2.75835293 -0.70479591 0.02987446 0.58694850 3.08058470
#>
#> Number of Observations: 176
#> Number of Groups: 16
You could recover all the same information from the second model. The effect of Time for Diet1 is just the coefficient on Time. The effect of Time for Diet2 is the effect of Time plus the effect of Time:Diet2 and its standard error is the square root of the variance of the time effect, plus the variance of the interaction coefficient plus two times the covariance of the two coefficients (this comes from the equation for the calculation of the variance of a linear combination of random variables).
b <- fixef(mod1)
V <- vcov(mod1)
## Time:Diet1
d1 <- c(b[2], sqrt(V[2,2]))
d1 <- c(d1, d1[1]/d1[2])
d1 <- c(d1, 2*pt(abs(d1[3]), 156, lower.tail=FALSE))
## Time:Diet2
d2 <- c(b[2] + b[4], sqrt(V[2,2] + V[4,4] + 2*V[2,4]))
d2 <- c(d2, d2[1]/d2[2])
d2 <- c(d2, 2*pt(abs(d2[3]), 156, lower.tail=FALSE))
## Time:Diet2
d3 <- c(b[2] + b[5], sqrt(V[2,2] + V[5,5] + 2*V[2,5]))
d3 <- c(d3, d3[1]/d3[2])
d3 <- c(d3, 2*pt(abs(d3[3]), 156, lower.tail=FALSE))
d <- rbind(d1, d2, d3)
colnames(d) <- c("Estimate", "SE", "t-stat", "p-value")
rownames(d) <- c("Time:Diet1", "Time:Diet2", "Time:Diet3")
d
#> Estimate SE t-stat p-value
#> Time:Diet1 -0.004704694 0.01606695 -0.2928182 0.7700503
#> Time:Diet2 0.003692093 0.01947738 0.1895580 0.8499019
#> Time:Diet3 0.025821390 0.02131895 1.2111944 0.2276525
Compare this result with the one from the first model above you can see that they are the same:
#> Estimate SE DF t-stat p-value
#> Time:Diet1 -0.00470 0.0160669 156 -0.29282 0.7701
#> Time:Diet2 0.00369 0.0194774 156 0.18956 0.8499
#> Time:Diet3 0.02582 0.0213189 156 1.21119 0.2277
Created on 2023-02-01 by the reprex package (v2.0.1)
So, the answer to how you get a coefficient for the interaction of each level of Diet and Time is to leave out the main effect of Time. That said, I would encourage you to include the main effect of Diet in the model as well - this would allow the intercepts to vary according to Diet.
I am using the following code to produce a boxplot with a density plot:
ggplot(data_alk_pan, aes(x = PAN, y = MEAS_RESULT, fill = PAN)) +
theme(legend.position = "none") +
theme(text = element_text(size = 10)) +
scale_x_discrete(labels = paste(levels(data_alk_pan$PAN), "\n(N=",table(data_alk_pan$PAN),")", sep="")) +
labs(y = "Concentration (mg/l)", x = "Pan") +
ggdist::stat_halfeye(
aes(thickness = stat(pdf*n)),
adjust = 0.5,
justification = -.5,
.width = 0,
point_colour = NA
) +
geom_boxplot(alpha = 0.5, varwidth = TRUE)
It works perfectly for every other factor I have in my data (i.e. if I point to a different column in my dataframe other than PAN) but for some reason it will only show the first level of the factor PAN.
I have checked that R recognises all of the levels in the factor by running the following:
levels(data_alk_pan$PAN)
which returns
[1] "Pan_01" "Pan_02" "Pan_03" "Pan_all"
which is what I would expect. However, only the first level (Pan_01) is showing in the plot. All of the levels have data (i.e. n>0 for all levels).
Any thoughts on what I am missing or what I can do to get all four levels to show in the plot?
Updated query to include some of the data:
> dput(data_alk_pan[1:200, c(8,13)])
structure(list(MEAS_RESULT = c(170, 180, 150, 140, 160, 140,
330, 130, 130, 210, 130, 130, 310, 400, 200, 160, 160, 160, 170,
170, 220, 170, 200, 240, 200, 190, 200, 180, 190, 240, 250, 260,
280, 270, 250, 290, 260, 260, 250, 230, 270, 260, 220, 260, 250,
310, 270, 86, 270, 150, 290, 290, 300, 290, 270, 210, 280, 300,
390, 270, 190, 240, 240, 260, 210, 250, 210, 220, 190, 260, 210,
190, 240, 280, 240, 210, 220, 220, 200, 250, 310, 260, 290, 280,
180, 280, 310, 310, 300, 300, 280, 190, 180, 180, 200, 210, 180,
280, 390, 290, 320, 310, 320, 260, 330, 330, 390, 300, 350, 270,
190, 180, 310, 270, 300, 270, 330, 310, 320, 310, 340, 330, 340,
270, 340, 57, 360, 28, 320, 170, 21, 370, 320, 330, 430, 340,
300, 350, 300, 300, 340, 260, 270, 230, 180, 210, 210, 240, 230,
260, 250, 230, 250, 270, 280, 170, 190, 190, 190, 180, 190, 250,
250, 260, 270, 180, 260, 260, 260, 260, 250, 260, 280, 290, 130,
150, 190, 180, 190, 240, 270, 260, 230, 220, 170, 190, 270, 270,
260, 280, 260, 260, 270, 280, 290, 270, 190, 230, 240, 170),
PAN = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 1L, 4L, 4L, 1L,
4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Pan_01",
"Pan_02", "Pan_03", "Pan_all"), class = "factor")), row.names = c(NA,
200L), class = "data.frame")
When I run your code there seems no problem. Try to update your packages and run them in a clean environment. Here is a reproducible example:
library(ggplot2)
library(ggdist)
ggplot(data_alk_pan, aes(x = PAN, y = MEAS_RESULT, fill = PAN)) +
theme(legend.position = "none") +
theme(text = element_text(size = 10)) +
scale_x_discrete(labels = paste(levels(data_alk_pan$PAN), "\n(N=",table(data_alk_pan$PAN),")", sep="")) +
labs(y = "Concentration (mg/l)", x = "Pan") +
ggdist::stat_halfeye(
aes(thickness = stat(pdf*n)),
adjust = 0.5,
justification = -.5,
.width = 0,
point_colour = NA
) +
geom_boxplot(alpha = 0.5, varwidth = TRUE)
Created on 2022-09-01 with reprex v2.0.2
Is there a way to put arrows on a plot with multiple plots with different y axes? I would like to put arrows across the time series on the same x axis locations but different y locations. I cant just use "annotate("segment", x = 37, xend = 84, y = 0.0, yend = 0.0,colour = "black", size = 1, arrow = arrow(ends='both'))" because then it puts them at 0 on the y axis for all variables when I actually want to just put the arrows at the bottom of the y axis which is different for every variable.
Current code:
fin_plot <- ggplot(melted_data, aes(x = `Distance`, y = value, group = variable)) + geom_line() + theme_bw() + labs(y="", x= "") + theme_classic() + theme(text=element_text(size=16, family="serif", face = "bold", color = "black")) +
facet_wrap(variable~., scales = "free_y",ncol=2) +
scale_x_continuous(limits = c(0, 250),labels = scales::number_format(accuracy = 1)) + theme(axis.line = element_line(colour = 'black', size = 1)) +
theme(axis.ticks = element_line(colour = "black", size = 1)) + scale_y_continuous(labels = scales::number_format(accuracy = 0.1))+ theme(axis.ticks.length = unit(.3, "cm")) + coord_capped_cart(bottom='right', left='none', gap = 0.15) + geom_vline(xintercept=c(58, 132, 204, 250, 309), linetype='dashed', col = 'black')
Current output
desired output
data:
melted_data <- structure(list(Distance = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
146, 147, 148, 149, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
147, 148, 149, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L), .Label = c("Mg", "Mn", "Zn", "Ba", "All"), class = "factor"),
value = c(0.903247645, 0.912560748, 0.896003508, 0.909572697,
0.883631829, 0.905722594, 0.892465355, 0.909271173, 0.880506202,
0.889278401, 0.878534542, 0.959209459, 0.913303825, 0.929893977,
0.97778374, 0.9885554, 0.929716333, 1.028422583, 1.025638955,
1.011352651, 1.041343955, 1.092562951, 1.129761801, 1.088857171,
1.107257284, 1.116728405, 1.103053734, 1.041662037, 1.134182243,
1.104550315, 1.086952767, 1.106004784, 1.057688595, 1.034347579,
1.04641385, 1.139270945, 1.048446018, 1.033827731, 1.075554754,
1.029893202, 1.074749532, 1.001626205, 0.977053541, 0.987467665,
0.999540478, 0.945184816, 0.959677178, 0.962807712, 0.967023936,
1.024286493, 0.881264816, 0.967181342, 1.000316876, 0.956168258,
1.003214572, 1.00047837, 0.940103474, 0.929875987, 0.928227112,
0.982410241, 0.983035162, 0.976666772, 1.019755049, 1.075189042,
0.975380543, 0.981316782, 0.986876269, 1.026690916, 1.052379934,
1.001547298, 0.979888683, 1.008209647, 0.976098272, 0.944479556,
0.996767684, 1.018077758, 1.028862706, 1.08510417, 1.08963868,
1.048481179, 1.139954126, 1.107066353, 1.122920581, 1.23904326,
1.19449336, 1.179971969, 1.165865352, 1.068804094, 1.099436469,
1.073307737, 1.07045113, 1.101007051, 1.011962649, 1.11202545,
1.097883672, 1.05361424, 0.993283703, 1.046635444, 1.04951188,
1.055736151, 1.063705172, 0.977095039, 1.015650848, 1.029367222,
1.003814349, 0.973376993, 1.021665177, 0.925511352, 1.014703757,
0.933654542, 1.027336075, 0.961163947, 1.022921765, 0.910164297,
0.937410814, 0.935246588, 0.925900983, 0.934477753, 0.927973832,
0.946372309, 0.950554394, 0.9386026, 1.000712639, 0.947846812,
0.953585987, 0.967735737, 0.927914753, 0.943303715, 0.935435884,
0.987648375, 0.902379461, 0.939086878, 1.018529942, 0.973874968,
0.974093087, 0.984149676, 0.948669001, 0.934863295, 1.011232041,
0.942884239, 0.978044788, 1.023700208, 1.011714275, 0.999153709,
1.06822476, 0.967735328, 1.131133479, 1.011068503, 1.034903609,
0.086720869, 0.113119382, 0.088197332, 0.081547788, 0.079373211,
0.07888827, 0.072865285, 0.079637996, 0.066314774, 0.097585729,
0.185034982, 0.214466904, 0.294317625, 0.481389256, 0.531196058,
0.715842439, 0.865098887, 0.987242052, 1.081028291, 1.240920518,
1.313524957, 1.543771699, 1.78495042, 1.746572555, 2.048760527,
2.101438775, 1.967474033, 2.000286925, 2.014020838, 1.924470659,
1.75696549, 1.786681246, 1.633290961, 1.455799758, 1.315346538,
1.435348984, 1.27887702, 1.152818928, 1.095127218, 0.987502349,
1.062278922, 0.898540082, 0.83617998, 0.889057689, 0.825563648,
0.788347646, 0.790973555, 0.775541228, 0.815063004, 0.848723108,
0.66783059, 0.672629631, 0.747809615, 0.72338158, 0.666220438,
0.664051795, 0.597260657, 0.689282162, 0.663808452, 0.678551141,
0.672917354, 0.686199986, 0.724202364, 0.746195474, 0.686135659,
0.654148537, 0.713488795, 0.72446665, 0.699529989, 0.630120423,
0.661767463, 0.663290351, 0.705879842, 0.709399338, 0.76228353,
0.714368918, 0.720561695, 0.837036666, 0.923882149, 1.014163852,
1.221410703, 1.315825246, 1.368054705, 1.641746627, 1.630198312,
1.698589629, 1.562956393, 1.427322658, 1.53964983, 1.574583495,
1.527101216, 1.380123116, 1.28649445, 1.29251968, 1.330565441,
1.317758525, 1.19292313, 1.217953538, 1.218591815, 1.163372928,
1.091026791, 0.878691182, 0.903966928, 0.917620557, 0.838430901,
0.825709255, 0.839298558, 0.76309434, 0.97617394, 0.739885015,
0.822159341, 0.785335779, 0.771926988, 0.766619321, 0.832448556,
0.733734124, 0.787221188, 0.685452005, 0.740552711, 0.707414697,
0.781271754, 0.72652958, 0.729470139, 0.71649368, 0.681176551,
0.683977986, 0.711079301, 0.681092777, 0.747615639, 0.700953146,
0.692246657, 0.673560118, 0.820384633, 0.740567172, 0.72070082,
0.795192662, 0.773897168, 0.74552279, 0.735710787, 0.768825863,
0.746016457, 0.736542042, 0.744507532, 0.784312542, 0.758393534,
0.7600356, 0.797384742, 0.773626898, 0.744557896, 0.746612627,
0.818368055, 0.696689824, 0.748702805, 0.717457681, 0.766243608,
0.805305259, 0.855909762, 0.803357905, 0.889646097, 0.854456208,
1.067795473, 1.051422575, 1.17061972, 1.138440648, 1.052796919,
1.040998633, 1.161739158, 1.025956799, 0.971567748, 1.072911493,
0.952121155, 1.040392714, 1.069745522, 1.068549198, 1.090194087,
1.214584829, 1.157485471, 1.245813376, 1.336359991, 1.204038397,
1.126255292, 1.131057736, 0.922042386, 1.037566449, 1.100852394,
1.121842367, 0.998657748, 1.006938923, 1.002800377, 0.897387497,
0.93902937, 0.889327622, 0.802133735, 0.855245047, 0.860702407,
0.704324249, 0.905827093, 0.760155095, 0.760247698, 0.655991619,
0.677006743, 0.668001976, 0.623410532, 0.569302474, 0.523713794,
0.690042836, 0.539115342, 0.528696218, 0.57851915, 0.60294784,
0.581392042, 0.65277069, 0.65620614, 0.625397246, 0.697647782,
0.6180657, 0.632326126, 0.684659215, 0.606197513, 0.630134281,
0.637151517, 0.574538208, 0.605993607, 0.533522181, 0.544522236,
0.577535469, 0.573427383, 0.672984155, 0.735286828, 0.7532343,
0.881292245, 0.801132661, 1.122761046, 1.137397845, 1.173190388,
1.138033979, 1.126494557, 1.144871399, 1.087042815, 0.981750792,
0.992888445, 0.955352455, 1.074357698, 1.027127808, 1.083248059,
1.010304962, 1.037776316, 1.052809984, 0.959161909, 0.939369893,
0.932304641, 0.912110856, 1.035278327, 0.825391661, 0.883818816,
0.880397247, 0.775385156, 0.860535004, 0.75878312, 0.764243502,
0.788209749, 0.736029937, 0.746966542, 0.762295984, 0.804665042,
0.797845669, 0.744225613, 0.846139103, 0.806957411, 0.789078125,
0.912631032, 0.926629248, 0.807376002, 0.795165332, 0.776764645,
0.811532921, 0.740169463, 0.707007363, 0.764252403, 0.754265833,
0.656183602, 0.78602999, 0.734580057, 0.756587437, 0.750509131,
0.727536118, 0.676232276, 0.714439923, 0.720668076, 0.763533465,
0.60234143, 0.651920197, 0.744086872, 0.633919728, 0.615213712,
0.705944962, 0.667362984, 0.742636421, 0.742734852, 0.839492568,
0.743899849, 0.817080816, 0.773569657, 0.735728339, 0.715168283,
0.78077814, 0.694280484, 0.773303425, 0.768041196, 0.883401699,
0.818274274, 0.715927964, 0.696938222, 0.832246446, 0.73089346,
0.790965216, 0.799717389, 0.865896893, 0.946771069, 0.954212275,
1.023740345, 1.027036123, 1.086336263, 1.064542815, 0.9463809,
0.924081609, 0.999832641, 0.911277648, 0.922871168, 0.953134033,
0.786732115, 0.802026729, 0.832863371, 0.863952475, 0.817833153,
0.748586924, 0.72095701, 0.738213943, 0.672736744, 0.704947698,
0.531743532, 0.634123809, 0.683548549, 0.733277161, 0.608993729,
0.752162246, 0.568705823, 0.643172511, 0.597251486, 0.655514695,
0.583437677, 0.557676441, 0.646713866, 0.527005047, 0.578023512,
0.576281064, 0.600923204, 0.578475648, 0.551957027, 0.585007991,
0.623858699, 0.630936819, 0.636198589, 0.565476603, 0.658861425,
0.577557604, 0.629178306, 0.646092809, 0.566079299, 0.60953767,
0.680135261, 0.500802233, 0.704656678, 0.61109605, 0.645344144,
0.667139888, 0.734969576, 0.780062983, 0.783090234, 0.83005691,
0.905356723, 0.933746319, 0.947613375, 0.923115827, 0.873482691,
0.746883952, 0.850273618, 0.795256154, 0.800825928, 0.772630039,
0.749567395, 0.7823457, 0.772609842, 0.736269985, 0.699705666,
0.716860238, 0.65909369, 0.806743181, 0.604632102, 0.629103485,
0.669824708, 0.545219042, 0.605081484, 0.545598194, 0.612458887,
0.640840679, 0.568115521, 0.578270006, 0.642784637, 0.486235168,
0.608704086, 0.449107996, 0.603056279, 0.573624703, 0.527880861,
0.479058818, 0.608581986, 0.497792884, 0.736359035, 0.560758315,
0.59150912, 0.491623628, 0.646548159, 0.559243084, 0.554057512,
0.542344646, 0.583808567, 0.623315676, 0.521008383, 0.511710892,
0.633820855, 0.529775704, 0.590383598, 0.500021436, 0.602344336,
0.499887402, 0.534870849, 0.583225149, 0.623554367, 0.62596102,
0.585378422, 0.648988779, 0.577416685, 0.632021029, 0.644454559,
0.684966009, 0.595845502, 2.479315993, 2.683540753, 2.424790513,
2.556904106, 2.454032378, 2.486582811, 2.485804182, 2.625597071,
2.444459365, 2.649813652, 2.686066928, 3.124873535, 3.077318299,
3.297830917, 3.344358668, 3.589441204, 3.566707313, 3.968369009,
3.932341434, 4.08973781, 4.374551474, 4.54266808, 4.97884528,
4.932211371, 5.310903272, 5.372904082, 5.231493496, 5.123516042,
5.393849098, 5.276658613, 4.970827822, 4.972075355, 4.608769407,
4.214216452, 4.232190208, 4.539424798, 4.266998558, 3.933891331,
3.898577905, 3.758409871, 3.707152695, 3.544143355, 3.234304675,
3.312782898, 3.363897722, 3.32751203, 3.063968711, 3.396338279,
3.110947858, 3.27642981, 2.802338511, 2.972332411, 2.999566144,
2.860636811, 2.88545135, 2.715249006, 2.805430479, 2.734554555,
2.721654986, 2.81795618, 2.810857383, 2.829266791, 3.020586802,
3.108527475, 2.923112037, 2.898589704, 2.977292189, 2.961041296,
3.065747444, 2.883958043, 2.837869726, 2.918189185, 2.936651583,
2.760674734, 2.997230073, 2.888064962, 2.972304014, 3.162708107,
3.42147456, 3.577994842, 3.897689363, 4.134240754, 4.19746467,
4.937297252, 4.909702892, 4.974867813, 4.740338415, 4.369505261,
4.634231316, 4.530190201, 4.380129066, 4.246648651, 4.003376949,
4.261248528, 4.228186763, 4.190890809, 3.896217461, 4.019225536,
3.980007369, 3.985014169, 3.698733958, 3.417194347, 3.50155334,
3.527485148, 3.272718395, 3.228503258, 3.353819869, 3.104831527,
3.419528222, 3.010592683, 3.256523555, 3.020944643, 3.139582776,
2.872858156, 3.135211633, 3.047270457, 3.038848701, 2.843214189,
3.123247632, 2.958537301, 3.257263308, 3.138521527, 3.248321146,
2.963340122, 3.076476029, 2.987721452, 3.004584487, 2.906910601,
2.973867453, 3.0761696, 2.869900334, 2.78054149, 3.25876542,
2.978797901, 3.041764942, 3.029872905, 3.052446623, 2.856505763,
2.9962536, 3.015603327, 3.111149077, 2.9885447, 2.993520426,
3.176541902, 3.037954707, 2.975005669, 3.278917742, 3.137024394,
3.117943428)), row.names = c(NA, -745L), class = "data.frame")
Use geom_segment - this allows you to make use of the faceting variable. You will then want to pass a data frame with the respective x/xend/y/yend.
library(dplyr)
## create a data frame first for the segments
## it makes sense to use the mininimum of your y for each facet
annot_df <- melted_data %>%
group_by(variable) %>%
summarise(y = min(value), yend = min(value), x = 25, xend = 75)
ggplot(melted_data, aes(x = Distance, y = value, group = variable)) +
geom_line() +
## now use the new data frame for geom_segment
geom_segment(data = annot_df, aes(x = x, xend = xend, y = y, yend = yend),
arrow = arrow(ends = "both", length = unit(5, "pt"))) +
facet_wrap(variable~., scales = "free_y",ncol=2)
Created on 2022-07-14 by the reprex package (v2.0.1)
This is the code I have for the heatmap.
sd1<-melt(Mstressed,id.vars = "Period")
library(plotly)
P1 <- ggplot(data=sd1, aes(x=Period, y=variable, fill=value)) +
geom_tile() +
ggtitle("Stress Portfolio Returns") +
scale_fill_gradientn(colors=colorRampPalette(c("lightgray","royalblue","seagreen","orange","red","brown"))(500),name="Returns") +
labs(x = "Period",y="Size") +
theme_bw()
ggplotly(P1)
Here is sd1 which is already in the melted format:
Period variable value
1 1 Size5 -1.124193e-03
2 2 Size5 2.859438e-05
3 3 Size5 -2.432560e-03
4 4 Size5 -2.544023e-03
5 5 Size5 -1.577432e-03
6 6 Size5 -1.480790e-03
and here it is sd1
> dput(sd1)
structure(list(Period = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128
), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("Size5", "Size15", "Size25",
"Size50", NA), class = "factor"), value = c(-0.0011241931, 2.85943772727272e-05,
-0.00243256027727273, -0.00254402339069767, -0.00157743184782609,
-0.00148078985416667, -0.00331852698695652, 0.000848599395833333,
-0.00297349628181818, -0.000345186711111111, -0.000501344534782609,
-0.000800074080851064, -0.00221098331428571, 0.00129236565531915,
-0.00131892916086957, -0.00177610596170213, -0.00319288334468085,
0.00113381609787234, -0.00107374819148936, -0.00144620190638298,
0.000141176244444444, -0.000204472952173913, -0.00153988329130435,
3.81790045454546e-05, -0.0011685701173913, 0.000593231404255319,
0.00081186575, 0.000795386733333333, -0.00260122034583333, -0.0021938114875,
0.000553855472340425, -0.0059582546893617, 0.868693839468085,
-0.002801906475, -0.00463708955833333, -0.00272099271111111,
0.00108590003333333, -0.00247600357826087, -0.00372859965957447,
0.000286994587234042, 0.000746639587234043, 0.000276679165957447,
-0.001046501125, 0.0001712814375, -0.0024568735875, 0.000996786336170213,
-0.00182627393191489, -0.000544925195652174, -0.00357635526086957,
-0.00054329072173913, 0.00013407957826087, -0.00103177774347826,
0.000500834638297872, 0.793977075161702, -7.5436685106383e-05,
-0.000485326586956522, -0.000606974591304348, 0.00238437179166667,
0.00100126108888889, -0.000513758953191489, 8.69377181818182e-05,
-0.00123867083829787, 1.3438354628383, -0.00031518505, -0.00191560200454545,
0.805996328804348, -2.61513454545454e-05, -0.000103250163636364,
-0.000778098191489362, -0.0015234903, -0.00114211408636364, -0.00159511182978723,
1.87802078087826, 6.72123086956521e-05, 0.00100891171111111,
-0.000902390629787234, 0.0011009548, 0.000312209177777778, -0.000768029209090909,
-0.000303889769565218, 2.55336222222222e-05, -0.000205546365217391,
0.000216974877272727, 1.47901930388571, -0.000277860133333333,
-0.000214537138095238, -0.00209356162222222, 8.97567761904762e-05,
-0.00559485620909091, 0.000268375711111111, 1.39724291668889,
0.000208154288888889, -0.000634756711111111, 1.22926746946512,
0.00201531319534884, 0.252617265511111, -0.00113930945106383,
0.000837345108695652, 0.00246463208780488, 0.000899249748837209,
0.00274860853333333, 0.00547736369047619, 0.00163468337674419,
-0.000276660977272727, -0.00149508101818182, -0.00221645797777778,
0.00217117751363636, -0.0024888984, -0.000886121655813954, 1.04398107523478,
0.00393339840930233, -0.000922796323809524, -0.00103749403636364,
0.0028039828, 0.00551933685, -0.00123477008888889, -0.005628441,
-0.00121736573043478, -0.000539308567441861, 0.000262361868181818,
0.000343038088888889, -0.0019510897, -0.00288396375454546, 0.359000083955556,
0.000433049466666666, 1.36924029128889, -0.000659901990909091,
0.00304780745454545, 0.000657599762790698, -0.00163171464444444,
-0.000950691240909091, 0.00140542772727273, -0.00107216327272727,
0.000923795111111111, -0.000474348352173913, -0.000865860582608696,
-0.00326246348888889, -0.0006538472, 0.000691390128571429, -9.56189619047619e-05,
-0.00127241684651163, 0.000941450827272727, 0.000531463427906977,
-0.0024702198, 1.36070394653333, -0.00128264022222222, -0.000889438852173913,
-0.000750582844444444, -0.000299201959090909, -0.00191169516363636,
-0.000670931155555555, 2.36634136363636e-05, -0.00117427344186047,
-0.00024379075, -0.000986528844444444, 0.000683873, -0.00243973785909091,
-0.00394431812727273, -0.00293166445, -0.00264133897021277, 0.0029811113627907,
-0.00108674306666667, -0.00145431042727273, 0.00250975572340426,
0.0009900039, -0.00208648798636364, -3.64380465116271e-06, 0.000535875804545454,
0.00197072025217391, -0.00175674031111111, -0.00122569961276596,
1.77897318181817e-05, 0.000638891873913043, -0.000582162311111111,
0.00169907495555556, -0.0017897038826087, 0.657609502855814,
-0.00276549255555556, 0.000570080259574468, 0.00242968832272727,
-0.000416251471428571, 0.000278305236363636, -0.000308473874418605,
0.0015745695875, -0.00119187120476191, 0.00315008771111111, 0.624268614481818,
0.000191677111111111, 0.26118118567234, 0.00184649572608696,
-0.00148222706521739, -0.00224949090232558, -0.00098840725, -0.000267329995744681,
-0.00113342224680851, -0.000558455731914894, 0.000867598088888889,
0.000182637295454545, 0.000666522423255814, -0.000249393468181818,
0.00137624896744186, -0.000641461824390244, -0.000726498320930232,
0.0002189695, 0.000304278144186047, -0.000552308133333333, -8.48839142857143e-05,
2.33358333333333e-05, -0.000115722561904762, 0.91983811283913,
-0.000417791762790698, -0.000322370023255814, -0.000398199302127659,
-9.84947333333333e-05, -0.00031643990952381, -0.000323731279069767,
-0.0006542225, -0.000273647675, 1.15457317073172e-05, -7.34662954545455e-05,
-0.000362220495238095, -0.000537859323809524, -8.60688604651162e-05,
-0.000820713952380952, -0.00153372003333333, -0.000662153756060606,
-0.00275888667727273, -0.00292078759069767, -0.00191772458115942,
-0.000874108720833333, -0.00347106492028986, 0.000208326329166667,
-0.00348595174848485, 0.324998960088889, -0.000291810668115942,
-0.0026285438141844, -0.00318451878095238, 0.00141962778865248,
0.54385947323913, -0.00152278529503546, -0.00409083314468085,
0.195643822364539, -0.000821318458156028, 0.481235884893617,
0.000631022044444445, -0.000154888085507247, -0.00238089515797101,
0.000598294737878788, -0.000853384650724638, 0.00126600480425532,
0.317600938083333, 0.000601763333333333, -0.00106298107916667,
0.316528564245833, 0.000802788139007092, -0.00681549495602837,
0.288553514534752, -0.001983084275, -0.00462916789166667, -0.00399624291111111,
0.00133947723333333, -0.00233989184492754, -0.00326993565957447,
-5.17553460992909e-05, 0.000316770853900709, 0.114606201365957,
0.311149128608333, 0.0994249547041667, -0.00179180045416667,
0.000758236002836879, -0.00229026533191489, -0.000906085528985507,
-0.0034218825942029, 0.411083387011594, 0.407663510978261, -0.000700014143478261,
9.04682382978723e-05, 0.264309987961702, 4.96020482269504e-05,
-0.00112393678695652, -0.00112170092463768, 0.00237529965833333,
-0.000567775777777778, -0.000236103953191489, 0.000608177318181818,
-0.00102851437163121, 0.448221119304964, 0.13397610235, -0.00241395220454545,
0.443765600537681, -0.000226488945454545, 0.000616203103030303,
-0.0013208753248227, -0.000716755566666667, 0.091597368380303,
-0.00170434656312057, 0.626332195011594, 0.000150197242028985,
0.000136383977777778, 0.381103545036879, 0.221540732266667, 0.360871791444444,
-0.000592961009090909, 0.000155833097101449, -0.000866745711111111,
0.000216817234782609, 0.609538703077273, 0.645238149819048, -0.000398335866666667,
-0.000344592138095238, -0.00137507775555556, -0.000256117023809524,
-0.00192587620909091, -6.42416888888889e-05, 1.02013637508889,
-9.28306444444445e-05, -0.00147465644444444, 0.409911313531783,
0.0019891590620155, 0.0851806975111111, -0.00204437158439716,
-0.000579642224637681, 0.000905066487804878, 0.643067721215504,
0.00147966286666667, 0.00508458082380952, 0.000539691310077519,
0.240211235089394, -0.000708393018181818, -0.00109935424444444,
0.0026950974469697, 0.6396645562, -0.00126269592248062, 0.347808651568116,
0.00457931780930233, 0.000302961476190476, -0.0012148691030303,
0.0923351892, 0.00567091231666667, 0.620369322511111, -0.00404364773333333,
-0.00241288513043478, 0.202742444965891, -0.000608278798484849,
0.000356460755555555, -0.00161257603333333, -0.00190840115454545,
0.120414817088889, 0.2228905758, 0.455057063555556, -0.000602834124242424,
0.00261724412121212, 0.452285066562791, -0.00246991411111111,
-0.00152651097424242, 0.000518139793939394, -0.00184454593939394,
0.000185236244444444, -0.00128692128550725, -0.000827895915942029,
-0.00243018582222222, -0.00120132326666667, 0.416215973261905,
0.000253243971428571, -0.00170670997984496, 0.000686898960606061,
-0.00033481963875969, -0.0020584786, 0.4539038956, -0.00121793155555556,
-0.00123285105217391, -0.000559311711111111, 0.000337146574242424,
-0.00228272816363636, -0.00138098148888889, -0.000646004586363636,
-0.0014501903751938, -7.21782833333334e-05, -0.000256129177777778,
0.000223322266666667, -0.00308267385909091, -0.00280884286060606,
-0.00280925431666667, -0.00175704863687943, 0.380177369362791,
-0.0012472598, -0.00215720449393939, 0.00190565352340426, 0.000277635766666667,
-0.00224420778636364, -0.000902296071317829, 0.00110526400454545,
0.00164177331884058, -0.000970322977777778, 0.488807391653901,
-0.000405886401515152, -0.000386372792753623, -0.000187081244444444,
0.00191570668888889, -0.00188197921594203, 0.219782496255814,
-0.00182879988888889, 4.84401929078014e-05, 0.000748088722727273,
-0.0012550096047619, 0.000173737503030303, -0.000151241941085271,
0.581544109520833, -0.00156196413809524, 0.00255382897777778,
0.208691561081818, 0.664795524311111, 0.42483048627234, 0.00175584192608696,
0.201560880468116, -0.00209381856899225, 0.000321025016666667,
-0.000421247062411348, -0.00215724371347518, 0.646012675801418,
0.350737970755556, 0.178416441162121, 0.00103144908992248, -0.000187515334848485,
0.000174517300775194, -0.000258069957723577, -0.00119511305426357,
0.0003255877, 0.00023375347751938, -0.0005782456, -0.000402424114285714,
0.1384140809, 0.418395168104762, 0.306135187705797, -0.00102090409612403,
-0.000444740023255814, 0.138124852631206, -0.0004063458, 0.00029016809047619,
-0.000799771212403101, -0.000183847566666667, 0.000114925325,
-0.000269002668292683, -0.000733895628787879, -0.000981041028571429,
-0.000873523457142857, 3.48687286821712e-06, -0.00107125035238095,
0.36082286618, -0.000514447102727273, -0.00280299127727273, -0.00263217947069767,
-0.00203968404782609, -0.000458293174166667, -0.00351976894695652,
0.000204725635833333, -0.00339431988181818, 0.193479343088889,
0.000112535625217391, -0.00213525120085106, -0.00288490815428571,
0.343934077535319, 0.32598547811913, 0.155322520318298, -0.00360304194468085,
0.116695380217872, -0.00115564579148936, 0.288642051333617, 0.00110193360444444,
0.000231925527826087, -0.00271350401130435, 0.000528825044545455,
-0.000843372957391304, 0.00152301136425532, 0.42680129887, 0.000348928813333333,
-0.00106065298583333, 0.1891960110325, 0.00144156823234043, -0.0058980177693617,
0.172238823228085, 0.180649895645, -0.00399227711833333, -0.00396987499111111,
-0.000279930486666667, -0.00221300633826087, -0.00437551217957447,
0.373557485947234, -0.000553946612765957, 0.180780737205957,
0.186384874315, 0.0601822571175, -0.0013033474675, 0.000607181016170213,
-0.00182825481191489, -0.00101525615565217, -0.00307393246086957,
0.246870552998261, 0.244639116138261, -9.59920234782608e-05,
0.00103178067829787, 0.158475002401702, 0.0957530407148936, -0.00108818790695652,
-0.00106499063130435, 0.00182353239166667, -0.000770247991111111,
0.251169645886809, 0.00135098203818182, -0.00106422307829787,
0.268188202118298, 0.08014729743, 0.173129845155455, 0.266595692084348,
-0.000510779745454545, 0.000609720036363636, -0.000709136471489362,
-0.00074677718, 0.273296411113636, -0.00150910594978723, 0.375676878958261,
-7.46597313043479e-05, 0.222301664431111, 0.599549396090213,
0.13323872568, 0.216335941017778, -0.000372647409090909, 0.000250945590434783,
-0.000609455297777778, 0.163203653554783, 0.365593381717273,
0.387049939765714, 0.377756158386667, -0.000608418738095238,
-0.000877734902222222, 0.29536194985619, -0.00151932240909091,
8.84523111111115e-06, 0.887420447928889, 6.04058888888889e-05,
-0.00168793287111111, 0.245879004745116, 0.00210788515534884,
0.0518048467911111, -0.00204896865106383, -0.000766938131304348,
0.000369568767804878, 0.385807118748837, 0.00125597745333333,
0.00342261065047619, 0.000917297056744186, 0.145203749862727,
-0.000608651458181818, -0.000619898377777778, 0.00255708987363636,
0.46996938808, 0.0463716679041861, 0.209438538634783, 0.00629131560930233,
0.000908092756190476, 0.118311483963636, 0.055266674, 0.00411797937,
0.371606156751111, -0.00341520444, -0.00207519669043478, 0.388790875192558,
0.382199056508182, 0.000288075208888889, -0.00233150982, 0.190417886325455,
0.367062582115556, 0.133206785506667, 0.591484569088889, -0.000679957030909091,
0.00235175421454545, 0.271733587002791, -0.00258801096444444,
0.209600095759091, 0.268993620327273, -0.00175308111272727, 0.000141544911111111,
-0.00146279359217391, -0.000720371102608696, -0.00227193868888889,
-0.00099748604, 0.249673461088571, 0.00122685363809524, -0.00157589268651163,
0.000390671067272727, -0.000246003732093023, -0.00189639072,
0.272506430813333, -0.00121220570222222, -0.00129201353217391,
-0.000471348084444445, 0.108562531000909, -0.00230415824363636,
-0.00146539943555556, -0.000698085466363636, -0.00125351572186047,
0.32477301345, -0.000655153204444444, 0.23415397968, -0.00311150981909091,
-0.00240564984727273, -0.00271525109, 0.124826008829787, 0.228650982202791,
-0.000831444746666667, -0.00208768206727273, 0.00210693784340426,
-0.00032504578, -0.00201565726636364, -0.00121992036465116, 0.241373214804545,
0.00180044913217391, -0.00144649063111111, 0.293257521547234,
0.156942076691818, -0.000396712526086957, 0.333872094768889,
0.00126618459555556, -0.0022017223626087, 0.132416393375814,
-0.00154369867555556, -0.000127951540425532, 0.000643781042727273,
-0.00149518583142857, 0.000159095756363636, 0.431103792525581,
0.3497642155475, -0.0010894085247619, 0.00271588987111111, 0.347565654681818,
0.554514602551111, 0.25466477267234, 0.00141746724608696, 0.120691384734783,
-0.00244462910232558, 0.06381322055, -0.000572060355744681, 0.212942333313191,
0.387555468868085, 0.210574743968889, 0.107224934255455, 0.00119969578325581,
-0.000265811628181818, -0.00014974783255814, -6.32937443902438e-05,
-0.00163017968093023, 0.00031326598, -0.000229250015813954, 0.281825955426667,
-0.000219622714285714, 0.0828831356333333, 0.251266484118095,
0.18387889279913, -0.000723895042790698, 0.362715330336744, 0.0829555198178723,
-0.000342741853333333, 0.00098233181047619, 3.61713209302325e-05,
0.00060474866, 0.000214934285, -0.000507613948292683, -0.00126401089545455,
0.295409336744762, 0.49940544567619, 0.000444745259534884, 0.075755845887619,
0.2663678565, -0.00112328892272727, -0.00252072917727273, 0.0919692581493023,
-0.00293427190782609, -7.54536341666666e-05, -0.00354078930695652,
2.57954158333333e-05, -0.00262876556181818, 0.0960986548688889,
-0.000307806654782609, -0.00256542482085106, -0.00344343351428571,
0.171732012655319, 0.16290640195913, 0.0771365308982979, -0.00323413486468085,
0.239592012997872, 0.0929770842485106, 0.143919237313617, 0.0872022225044444,
-0.000374014952173913, -0.00198149831130435, 0.150230880804545,
0.0495306889826087, 0.00207576486425532, 0.21266222853, 6.23467733333334e-05,
-0.000502785265833333, 0.1146813025125, 0.00236195601234043,
-0.0055398928293617, 0.0850331580480851, 0.091095192845, -0.00308972659833333,
-0.00268806053111111, -0.000621778406666667, -0.00211494293826087,
0.0788185111804255, 0.187436011507234, -0.00105928309276596,
0.273111877825957, 0.091654408075, 0.1881146334375, -0.0012845890675,
0.000535671256170213, 0.261780701048085, -0.00130433873565217,
0.0672782252391304, 0.123152524898261, 0.122219372418261, 0.108913352556522,
0.00154812281829787, 0.0787473360617021, 0.208401497354894, 0.0494821097730435,
-0.00100385527130435, 0.00179214179166667, -0.00113253543111111,
0.125312734706809, 0.00112138269818182, -0.000824940378297872,
0.133558478718298, 0.06196782193, 0.0853069711554545, 0.227115156824348,
-0.000573424825454545, 0.147897520156364, 0.0948538439485106,
-0.00102526364, 0.136662496333636, 0.0497748200102128, 0.327559354018261,
0.158837548148696, 0.111405826131111, 0.472707361930213, 0.15095515508,
0.108453752477778, -0.000742863369090909, 0.000265612850434783,
0.187649188042222, 0.277873906394783, 0.417418378297273, 0.383188042745714,
0.188476248766667, -0.000679375438095238, -0.000940556842222222,
0.14747278479619, -0.00116911116909091, 0.193063097831111, 0.443910019148889,
0.156860665528889, -0.00140947317111111, 0.194701012465116, 0.179753437755349,
0.0271931040711111, -0.00148793193106383, -0.000247921611304348,
0.0215570688078049, 0.193278326948837, 0.269718930653333, 0.00265989913047619,
0.00111463559674419, 0.0727459556427273, 0.178373261021818, 0.0498605999422222,
0.00285280777363636, 0.28503765544, 0.0225589752241861, 0.105547501674783,
0.00522300738930233, 0.000134479296190476, 0.0587813904836364,
0.02802175016, 0.17572127429, 0.184946720591111, -0.00234486358,
-0.00230577149043478, 0.194051282172558, 0.250351470368182, 0.143461193228889,
-0.00273105342, 0.0943393136254545, 0.184555788855556, 0.0659578766466666,
0.294674815488889, -0.000197858810909091, 0.135317324614545)), row.names = c(NA,
800L), class = "data.frame")
This is the plot i get which is incorrect, I am very confused as I am sure it was working in the past that code, as well as I am sure the syntax is correct! Obviously i must be missing something.
Given your data and script, the plot looks ok on my computer (see below). Which version have you used?
library("plotly")
P1 <- ggplot(data=sd1, aes(x=Period, y=variable, fill=value)) +
geom_tile() +
ggtitle("Stress Portfolio Returns") +
scale_fill_gradientn(colors=colorRampPalette(c("lightgray","royalblue","seagreen","orange","red","brown"))(500),name="Returns") +
labs(x = "Period",y="Size") +
theme_bw()
ggplotly(P1)
I recommend to follow the advice of #Dan Adams. It may also help to check the versions of R and packages. Here a part of my SessionInfo (only R version and attached packages shown).
> sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19043)
# ... omitted
other attached packages:
[1] plotly_4.10.0 ggplot2_3.3.5
# ... omitted
I have a data frame like this:
Server
Date Server Space
1 2010-01-30 server1 100
2 2010-02-28 Server1 400
3 2010-03-30 Server1 300
4 2010-04-30 Server2 200
5 2010-05-30 Server2 500
6 2010-06-30 Server2 300
based on this data frame, I use aggregate to group Harddisk usage by month and store it in a data frame called z, as below.
z
Month Value
1 2010-01 600
2 2010-02 700
3 2010-03 800
4 2010-04 900
5 2010-05 800
6 2010-06 900
I am trying to create a stack chart on x and put a line on the total based on z on top of the same stack chart using ggplot2.
syntax is below:
I had to do this to avoid (Error: Discrete value supplied to continuous scale)
server$Date<-as.character(server$Date)
then run this:
ggplot(server, aes(Date, Space)) + geom_bar(aes(fill=Server), stat="identity", position="stack") + theme_bw() + scale_x_discrete(name="Date") + scale_y_continuous("Space") + opts(axis.title.x = theme_text(face="bold", colour="#990000", size=15),axis.text.x = theme_text(angle=90), axis.title.y = theme_text(face="bold", colour="#990000", angle=90, size=15)) + geom_smooth(data=z,aes(Month,Value,group=1), method="lm", size=2, color="darkblue")
This works but on my xaxis, I have two sets of data, which looks very cluttered. Is it possible to hide or suppress the dates from x data frame and only show z$Month on xaxis?
I can use this:
scale_x_date(labels = date_format("%m-%Y"))
But when I do this, xaxis is now showing 01-1970 for all data points.
*Update *
Let me ask this question in other way. I like to create a stack chart and on top of the stack, put a linear line using geom_smooth() to show where the total usage is going. I was thinking use x data frame to build the stack chart, then create another data frame for the total value and create the geom_smooth() line based on the total data frame as z. Doing it this way, puts 2 data values to the xaxis.
Rather than doing it this way, is it possible to draw geom_smooth() on the stack bar based on x data frame?
This is the dput of the data frame:
server <- structure(list(Date = structure(c(1325394000, 1325480400, 1325566800,
1325653200, 1325739600, 1325826000, 1325912400, 1325998800, 1326085200,
1326171600, 1326258000, 1326344400, 1326430800, 1326517200, 1326603600,
1326690000, 1326776400, 1325394000, 1325480400, 1325566800, 1325653200,
1325739600, 1325826000, 1325912400, 1325998800, 1326085200, 1326171600,
1326258000, 1326344400, 1326430800, 1326517200, 1326603600, 1326690000,
1326776400, 1325394000, 1325480400, 1325566800, 1325653200, 1325739600,
1325826000, 1325912400, 1325998800, 1326085200, 1326171600, 1326258000,
1326344400, 1326430800, 1326517200, 1326603600, 1326690000, 1326776400,
1328072400, 1328158800, 1328245200, 1328331600, 1328418000, 1328504400,
1328590800, 1328677200, 1328763600, 1328850000, 1328936400, 1329022800,
1329109200, 1329195600, 1329282000, 1329368400, 1329454800, 1328072400,
1328158800, 1328245200, 1328331600, 1328418000, 1328504400, 1328590800,
1328677200, 1328763600, 1328850000, 1328936400, 1329022800, 1329109200,
1329195600, 1329282000, 1329368400, 1329454800, 1328072400, 1328158800,
1328245200, 1328331600, 1328418000, 1328504400, 1328590800, 1328677200,
1328763600, 1328850000, 1328936400, 1329022800, 1329109200, 1329195600,
1329282000, 1329368400, 1329454800, 1330578000, 1330664400, 1330750800,
1330837200, 1330923600, 1331010000, 1331096400, 1331182800, 1331269200,
1331355600, 1331442000, 1331524800, 1331611200, 1331697600, 1331784000,
1331870400, 1331956800, 1330578000, 1330664400, 1330750800, 1330837200,
1330923600, 1331010000, 1331096400, 1331182800, 1331269200, 1331355600,
1331442000, 1331524800, 1331611200, 1331697600, 1331784000, 1331870400,
1331956800, 1330578000, 1330664400, 1330750800, 1330837200, 1330923600,
1331010000, 1331096400, 1331182800, 1331269200, 1331355600, 1331442000,
1331524800, 1331611200, 1331697600, 1331784000, 1331870400, 1331956800
), class = c("POSIXct", "POSIXt"), tzone = ""), Server = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("ServerA", "ServerB",
"ServerC"), class = "factor"), Space = c(100, 110, 110, 120,
120, 130, 130, 140, 140, 150, 150, 160, 160, 170, 170, 180, 200,
220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460,
480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720,
740, 760, 780, 800, 820, 840, 860, 880, 100, 110, 110, 120, 120,
130, 130, 140, 140, 150, 150, 160, 160, 170, 170, 180, 200, 220,
240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480,
500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740,
760, 780, 800, 820, 840, 860, 880, 550, 110, 560, 120, 570, 130,
580, 140, 590, 150, 600, 160, 610, 170, 620, 180, 200, 550, 570,
590, 610, 630, 650, 670, 690, 710, 730, 750, 600, 620, 640, 660,
680, 700, 720, 740, 760, 780, 800, 820, 840, 860, 880, 900, 920,
940, 960, 980, 1000, 1020, 1000)), .Names = c("Date", "Server",
"Space"), row.names = c(NA, 153L), class = "data.frame")
z <- structure(list(Month = c("2012-01", "2012-02", "2012-03"), Value = c(21140,
21140, 32010)), .Names = c("Month", "Value"), row.names = c(NA,
-3L), class = "data.frame")
Since you are working with dates (and not DateTimes), you'll find it easier if both your date columns are as.Date objects:
server$Date <- as.Date(server$Date)
z$Month <- as.Date(paste0(z$Month, "-01"))
ggplot(server, aes(Date, Space)) +
geom_bar(aes(fill=Server), stat="identity", position="stack") +
geom_point(data=z,aes(Month,Value,group=1), color="darkblue") +
geom_line(data=z,aes(Month,Value,group=1), color="darkblue")