The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
The new design offers full flexibility and customization to produce
publication-ready plots. exuber
used to plot graph
individually in a list, and then you could modify each plot and arrange
them into a single grob with ggarrange()
(which now is
defunct). However, newer versions of exuber focus on providing a faceted
plot as it easier to change the aesthetics and themes.
Let’s start by simulating some data.
set.seed(123)
<- tibble(
sims sim_psy1 = sim_psy1(100),
sim_psy2 = sim_psy2(100),
sim_evans = sim_blan(100),
sim_blan = sim_evans(100),
)
# Esimation
<- radf(sims, lag = 1)
estimation
# Critical Values
<- radf_mc_cv(nrow(sims)) crit_values
The visual output of autoplot in v0.4.0
is exactly the
same as before.
autoplot(estimation, crit_values)
However, almost all aspects of the plot can be easily changed.
The custom color for autoplot are “blue and”red”, however the user
can easily override this option with
ggplot2::scale_color_manual
.
autoplot(estimation, crit_values) +
scale_color_manual(values = c("grey","black")) +
theme_classic()
shade_opt
allows the user to manipulate the
geom_rect()
layer of the ggplot, using the
shade
function. Alternatively, it can be omitted if it set
to NULL
.
autoplot(estimation, crit_values, shade_opt = shade(fill = "pink", opacity = 0.3))
Custom plotting is also very easy with the
augment_join()
, that merge the output of the estimation and
and critical values in a ggplot2-friendly way.
<- augment_join(estimation, crit_values)
joined
joined#> # A tibble: 1,926 × 8
#> key index id data stat tstat sig crit
#> <int> <dbl> <fct> <dbl> <fct> <dbl> <fct> <dbl>
#> 1 21 21 sim_psy1 119. badf -2.08 90 -0.44
#> 2 22 22 sim_psy1 112. badf -2.31 90 -0.44
#> 3 23 23 sim_psy1 111. badf -2.39 90 -0.44
#> 4 24 24 sim_psy1 104. badf -2.26 90 -0.44
#> 5 25 25 sim_psy1 98.6 badf -2.08 90 -0.44
#> 6 26 26 sim_psy1 94.3 badf -1.79 90 -0.44
#> 7 27 27 sim_psy1 82.9 badf -1.00 90 -0.44
#> 8 28 28 sim_psy1 88.6 badf -1.34 90 -0.44
#> 9 29 29 sim_psy1 89.6 badf -1.28 90 -0.44
#> 10 30 30 sim_psy1 81.9 badf -0.800 90 -0.44
#> # … with 1,916 more rows
The output of augment_join
returns data in tidy format
and offers full flexibility to the user. After this point plotting
becomes extremely trivial.
%>%
joined ggplot(aes(x = index)) +
geom_line(aes(y = tstat)) +
geom_line(aes(y = crit)) +
facet_grid(sig + stat ~ id , scales = "free_y")
#> Warning: Removed 1 row containing missing values (`geom_line()`).
#> Removed 1 row containing missing values (`geom_line()`).
We also offer two functions scale_exuber_manual
and
theme_exuber
that offer some extra functionality.
%>%
joined pivot_longer(cols = c("tstat", "crit"), names_to = "nms") %>%
ggplot(aes(x = index, y = value, col = nms)) +
geom_line() +
facet_grid(sig + stat ~ id , scales = "free_y") +
scale_exuber_manual() +
theme_exuber()
In addition to critical values, we can also calculate the empirical distribution by utilizing the family of *_distr functions. For example if we can simulate the distribution of the supADF tests with Monte Carlo method.
<- radf_mc_distr(n = 300)
distr autoplot(distr)
This part is made just for fun.
library(tidyr)
%>%
distr tidy() %>%
rename_all(~ stringr::str_to_upper(.)) %>%
gather(Statistic, value, factor_key = TRUE) %>%
ggplot(aes(value, color = Statistic)) +
stat_ecdf() +
ggtitle("Empirical Cumulative Distribution") +
geom_hline(yintercept = 0.95, linetype = "dashed") + theme_bw()
To return to the old functionality there are several ways.
library(gridExtra)
# To choose only positive series (i.e. statistically significant for 5%)
<- diagnostics(estimation, crit_values)$positive
positive_series
# Through a loop on positive series
<- list()
plot_list1 for (as in positive_series) {
<- autoplot(estimation, crit_values, select_series = as)
plot_list1[[as]]
}
# Alternatively with lapply
<- lapply(positive_series, function(x) autoplot(estimation, crit_values, select_series = x))
plot_list2 names(plot_list2) <- positive_series
do.call(gridExtra::grid.arrange, plot_list1)
With the old functionality you had to make changes one at a time
1]] <- plot_list1[[1]] + theme_classic() plot_list1[[
and then reconstruct the plot with grid.arrange
or some
other function that arranges all plots into a single grob.
Enjoy Plotting with exuber
!!!
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.