We're having a visual showing aggregated data representing CPE quality KPIs. Here simplified and only for 1 day:
On the left side we're seeing two categories of parameter. SNR and RX, splitted into AVG, MIN_AVG, MAX_AVG.
Now I want to fill the area between snr_min_avg_da
and snr_max_avg_ds
and also between rx_min_avg
and rx_max_avg
, but it doesn't work. I tried:
df_snr_ds_ribbon = df_topo_cpe[, c("dt", "snr_min_avg_ds", "snr_max_avg_ds")]
df_snr_ds_ribbon[, Type:="Downstream"]
ggplot(df2plot, aes(x=dt, y=Value, color=Parameter, group=Parameter))
geom_line()
geom_ribbon(data=df_snr_ds_ribbon, aes(ymin=snr_min_avg_ds, ymax=snr_max_avg_ds))
facet_wrap(~Type)
theme_bw()
scale_color_manual(values=group.colors)
--> Error in FUN(X[[i]], ...) : object 'Parameter' not found
Can somebody help?
MWE
library(ggplot2)
library(data.table)
df2plot = structure(list(dt = structure(c(1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800, 1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800, 1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800, 1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800, 1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800, 1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800, 1652659200, 1652662800,
1652666400, 1652670000, 1652673600, 1652677200, 1652680800, 1652709600,
1652713200, 1652716800, 1652720400, 1652724000, 1652727600, 1652731200,
1652734800, 1652738400, 1652742000, 1652745600, 1652749200, 1652752800,
1652756400, 1652760000, 1652763600, 1652767200, 1652770800, 1652774400,
1652778000, 1652781600, 1652785200, 1652788800), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), Parameter = 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, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 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, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L), .Label = c("snr_avg_ds",
"rx_avg", "ccer_ds", "snr_avg_us", "ccer_us", "snr_min_avg_ds",
"snr_max_avg_ds", "rx_min_avg", "rx_max_avg"), class = "factor"),
Value = c(36.1282857259115, 36.1323334466843, 36.1735545967428,
36.1354285648891, 36.2431428909302, 36.2615167066384, 36.2081553912857,
36.0234598006117, 36.0861322205022, 36.0647170138809, 36.0507547990331,
36.1089622029718, 36.1176191057478, 36.172904750279, 36.2025480453785,
36.2238389146271, 36.2320953005836, 36.2217061282334, 36.247971786643,
36.314571525937, 36.2843811398461, 36.2536191395351, 36.1984977184887,
36.1924882450014, 36.1857747001827, 36.1333961936663, 36.0565877164145,
36.0683491364965, 36.0156132320188, 36.0109860057562, -2.43223808254337,
-2.38038093995835, -2.40497629111412, -2.33342857075234,
-2.30533333222071, -2.27763032802862, -2.42839806827093,
-3.08758295037876, -2.86150944247877, -2.98240565932092,
-2.86051885235422, -2.72627358584893, -2.70666666775942,
-2.56400000178033, -2.38836538821208, -2.42047392380075,
-2.4352380920645, -2.39099525966598, -2.34820755044842, -2.30785715322764,
-2.17823812269739, -2.23514286584797, -2.304460096361, -2.49281690726188,
-2.60521126847207, -2.7361792446079, -2.92545022561228, -3.00509433938577,
-3.14235849855116, -3.20323943874926, 40.9788829892181, 41.0245574241461,
40.9719527488531, 41.046650358688, 40.9960457912711, 41.0518596560456,
41.0139245363039, 40.9507399311772, 41.0114345020718, 40.9680547361021,
41.0208789154335, 40.9371752032527, 40.93212890625, 40.9442585485953,
40.8269438037166, 40.774166142499, 40.9881010938574, 40.963471589265,
41.0165270876002, 40.9033326926055, 41.0521289684154, 41.0287492540148,
40.9563419377362, 40.9035179261808, 40.947499398832, 40.9070827166239,
40.9819438015973, 41.0581010712518, 40.9659252873174, 41.0179621201974,
26.2000007629395, 27, 27.6000003814697, 25.6000003814697,
26.8999996185303, 27.2999992370606, 27.5, 27.3999996185303,
27.7000007629395, 26.8999996185303, 25.6000003814697, 27.2000007629395,
27.1000003814697, 28.6000003814697, 28, 28, 27.3999996185303,
27.2000007629395, 27.2000007629395, 29.7600002288818, 26.6000003814697,
27.5, 25.1000003814697, 26.6000003814697, 27, 26.5, 27.2000007629395,
27, 27, 27.5, 41.2200012207031, 41.2099990844727, 41.2400016784668,
41.2400016784668, 41.4000015258789, 41.4099998474121, 41.4199981689453,
41.2000007629395, 41.1100006103516, 41.1399993896484, 41.189998626709,
41.1399993896484, 41.2999992370605, 40.7900009155274, 41.060001373291,
41.3800010681152, 41.3899993896484, 40.8400001525879, 40.8400001525879,
41.4199981689453, 40.5900001525879, 41.1500015258789, 41.0099983215332,
40.2799987792969, 41.25, 40.560001373291, 41.060001373291,
41.4199981689453, 41.439998626709, 41.1599998474121, -15.9200000762939,
-15.9200000762939, -15.9399995803833, -15.9399995803833,
-15.8900003433228, -15.8599996566772, -15.9200000762939,
-16.5300006866455, -16.3500003814697, -16.4699993133545,
-16.3799991607666, -16.2600002288818, -16.1800003051758,
-16.1399993896484, -16.0799999237061, -15.960000038147, -17.1499996185303,
-17.1599998474121, -17.1100006103516, -17.0200004577637,
-16.9500007629395, -16.9400005340576, -16.9599990844727,
-17.1499996185303, -17.1900005340576, -17.3500003814697,
-17.5599994659424, -17.6399993896484, -17.75, -17.8600006103516,
21.1700000762939, 21.1599998474121, 21.1399993896484, 21.2000007629395,
21.2800006866455, 21.2800006866455, 20.9599990844727, 20.4899997711182,
20.6700000762939, 20.6599998474121, 20.6900005340576, 20.7800006866455,
20.8099994659424, 20.8799991607666, 21.0400009155273, 21.1800003051758,
21.2199993133545, 21.2199993133545, 21.2999992370606, 21.3799991607666,
21.4200000762939, 21.4899997711182, 21.4099998474121, 21.0100002288818,
20.8299999237061, 20.7800006866455, 20.6200008392334, 20.5599994659424,
20.4099998474121, 20.4300003051758), Type = c("Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Upstream",
"Upstream", "Upstream", "Upstream", "Upstream", "Upstream",
"Upstream", "Upstream", "Upstream", "Upstream", "Upstream",
"Upstream", "Upstream", "Upstream", "Upstream", "Upstream",
"Upstream", "Upstream", "Upstream", "Upstream", "Upstream",
"Upstream", "Upstream", "Upstream", "Upstream", "Upstream",
"Upstream", "Upstream", "Upstream", "Upstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream", "Downstream",
"Downstream", "Downstream", "Downstream", "Downstream"),
SNR_Threshold = c(35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35)), row.names = c(NA, -210L), class = c("data.table",
"data.frame"))
group.colors <- c(snr_avg_ds="red3", snr_min_avg_ds="red1", snr_max_avg_ds="red1",
rx_avg="royalblue4", rx_min_avg="royalblue1", rx_max_avg="royalblue1",
snr_avg_us="royalblue1")
ggplot(df2plot, aes(x=dt, y=Value, color=Parameter, group=Parameter))
geom_line()
facet_wrap(~Type)
theme_bw()
scale_color_manual(values=group.colors)
CodePudding user response:
Maybe this is what you are looking for? Unfortunately your MWE is not reproducible as it is missing the dataset df_topo_cpe
. But I give it a try as I guess that it is your data df2plot
in a wide format and hence there issue is that the dataset you use for the ribbons is lacking columns Parameter
and Value
which you specified as global aes.
To fix this issue you could simply make these aesthetics local to the geom_line
layer.
group.colors <- c(
snr_avg_ds = "red3", snr_min_avg_ds = "red1", snr_max_avg_ds = "red1",
rx_avg = "royalblue4", rx_min_avg = "royalblue1", rx_max_avg = "royalblue1",
snr_avg_us = "royalblue1"
)
df_snr_ds_ribbon = df2plot[Parameter %in% c("dt", "snr_min_avg_ds", "snr_max_avg_ds"), ] |>
tidyr::pivot_wider(names_from = "Parameter", values_from = "Value")
ggplot(df2plot, aes(x = dt))
geom_line(aes(y = Value, color = Parameter, group = Parameter))
geom_ribbon(data=df_snr_ds_ribbon, aes(ymin=snr_min_avg_ds, ymax=snr_max_avg_ds), fill = "red1")
facet_wrap(~Type)
theme_bw()
scale_color_manual(values = group.colors)