У меня есть два очень похожих графика, которые имеют две оси Y - гистограмму и линейный график:
![enter image description here](https://i.stack.imgur.com/1puas.png)
код:
sec_plot <- ggplot(data, aes_string (x = year, group = 1)) +
geom_col(aes_string(y = frequency), fill = "orange", alpha = 0.5) +
geom_line(aes(y = severity))
Однако ярлыков нет. Я хочу получить метку для барплота, а также метку для линейного графика, что-то вроде:
![enter image description here](https://i.stack.imgur.com/eTUDt.png)
Как добавить метки в сюжет, если есть только поне одной группы? Есть ли способ указать это вручную? Пока не знаю, я нашел только вариант, где метки могут быть добавлены, указав их в aes
EXTENSION (добавлено сзади):
getSecPlot <- function(data, xvar, yvar, yvarsec, groupvar){
if ("agegroup" %in% xvar) xvar <- get("agegroup")
# data <- data[, startYear:= as.numeric(startYear)]
data <- data[!claims == 0][, ':=' (scaled = get(yvarsec) * max(get(yvar))/max(get(yvarsec)),
param = max(get(yvar))/max(get(yvarsec)))]
param <- data[1, param] # important, otherwise not found in ggplot
sec_plot <- ggplot(data, aes_string (x = xvar, group = groupvar)) +
geom_col(aes_string(y = yvar, fill = groupvar, alpha = 0.5), position = "dodge") +
geom_line(aes(y = scaled, color = gender)) +
scale_y_continuous(sec.axis = sec_axis(~./(param), name = paste0("average ", yvarsec),labels = function(x) format(x, big.mark = " ", scientific = FALSE))) +
labs(y = paste0("total ", yvar)) +
scale_alpha(guide = 'none') +
theme_pubclean() +
theme(legend.title=element_blank(), legend.background = element_rect(fill = "white"))
}
plot.ExposureYearly <- getSecPlot(freqSevDataAge, xvar = "agegroup", yvar = "exposure", yvarsec = "frequency", groupvar = "gender")
plot.ExposureYearly
Как можно так же быть сделано на участке, где как линейный, так и линейчатый график разделены по полу?