44# ' the emission risk profiles risks for one or several benchmarks.
55# '
66# ' @param data A data frame like [without_financial].
7- # ' @param benchmarks A character vector specifying the benchmarks for which the
7+ # ' @param grouping_emission A character vector specifying the benchmarks for which the
88# ' emission profiles will be plotted. The user can choose from one to several
99# ' benchmark(s) to be plotted.
1010# ' @param mode A character vector: `r toString(modes())`.
1111# ' @param scenario A character vector: `r toString(scenarios())`.
1212# ' @param year A character vector: `r toString(years())`.
13+ # ' @param risk_category A character vector.
1314# '
1415# ' @return A [ggplot] object.
1516# '
1617# ' @export
1718# '
1819# ' @examples
19- # ' benchmarks <- c("all", " unit", "isic_4digit ")
20- # ' bar_plot_emission_profile(without_financial, benchmarks )
20+ # ' grouping_emission <- c("unit")
21+ # ' bar_plot_emission_profile(without_financial, grouping_emission, risk_category = "emission_category" )
2122bar_plot_emission_profile <- function (data ,
22- benchmarks = benchmarks (),
23+ grouping_emission = grouping_emission (),
2324 mode = modes(),
2425 scenario = scenarios(),
25- year = years()) {
26- benchmarks <- arg_match(benchmarks , multiple = TRUE )
26+ year = years(),
27+ risk_category = risk_category()) {
28+ grouping_emission <- arg_match(grouping_emission , multiple = TRUE )
2729 mode <- mode | >
2830 arg_match() | >
2931 switch_mode_emission_profile()
@@ -32,8 +34,9 @@ bar_plot_emission_profile <- function(data,
3234
3335 data | >
3436 check_bar_plot_emission_profile(mode ) | >
35- prepare_bar_plot_emission_profile(benchmarks = benchmarks , mode = mode , scenario = scenario , year = year ) | >
36- plot_bar_plot_emission_profile_impl()
37+ prepare_bar_plot_emission_profile(grouping_emission = grouping_emission , mode = mode ,
38+ scenario = scenario , year = year , risk_category = risk_category ) | >
39+ plot_bar_plot_emission_profile_impl(risk_category = risk_category )
3740}
3841
3942# ' Check bar plot plot without financial data
@@ -44,35 +47,31 @@ bar_plot_emission_profile <- function(data,
4447# ' @noRd
4548check_bar_plot_emission_profile <- function (data , mode ) {
4649 crucial <- c(
47- " benchmark " ,
50+ " grouping_emission " ,
4851 mode ,
4952 aka(" risk_category" )
5053 )
5154 data | > check_crucial_names(names_matching(data , crucial ))
5255}
5356
54- # ' Prepare emission profile proportions for specific benchmarks
57+ # ' Prepare emission profile proportions for specific grouping_emission
5558# '
5659# ' @param data A data frame.
57- # ' @param benchmarks A character vector.
60+ # ' @param grouping_emission A character vector.
5861# ' @param mode A character vector.
62+ # ' @param risk_category A character vector.
5963# '
6064# ' @return A data frame.
6165# '
6266# ' @noRd
63- prepare_bar_plot_emission_profile <- function (data , benchmarks , mode , scenario , year ) {
64- risk_var <- get_colname(data , aka(" risk_category" ))
65-
66- data <- data | >
67- mutate(risk_category_var = as_risk_category(.data [[risk_var ]]))
68-
67+ prepare_bar_plot_emission_profile <- function (data , grouping_emission , mode , scenario , year , risk_category ) {
6968 data <- data | >
70- filter((.data $ benchmark %in% .env $ benchmarks &
69+ filter((.data $ grouping_emission %in% .env $ grouping_emission &
7170 .data $ scenario == .env $ scenario &
7271 .data $ year == .env $ year )) | >
73- group_by(.data $ risk_category_var , .data $ benchmark ) | >
72+ group_by(.data [[ risk_category ]] , .data $ grouping_emission ) | >
7473 summarise(total_mode = sum(.data [[mode ]])) | >
75- group_by(.data $ benchmark ) | >
74+ group_by(.data $ grouping_emission ) | >
7675 mutate(proportion = total_mode / sum(total_mode ))
7776
7877 data
@@ -81,11 +80,12 @@ prepare_bar_plot_emission_profile <- function(data, benchmarks, mode, scenario,
8180# ' Implementation of the emission profile bar plot
8281# '
8382# ' @param data A data frame.
83+ # ' @param risk_category A character vector.
8484# '
8585# ' @return A [ggplot] object.
8686# ' @noRd
87- plot_bar_plot_emission_profile_impl <- function (data ) {
88- ggplot(data , aes(x = .data $ proportion , y = .data $ benchmark , fill = .data $ risk_category_var )) +
87+ plot_bar_plot_emission_profile_impl <- function (data , risk_category ) {
88+ ggplot(data , aes(x = .data $ proportion , y = .data $ grouping_emission , fill = .data [[ risk_category ]] )) +
8989 geom_col(position = position_stack(reverse = TRUE ), width = width_bar()) +
9090 fill_score_colors() +
9191 theme_tiltplot() +
0 commit comments