diff --git a/DESCRIPTION b/DESCRIPTION index a7c6fc0c..9ae69b1f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: bayesplot Type: Package Title: Plotting for Bayesian Models -Version: 1.1.0 -Date: 2016-12-19 +Version: 1.1.0.9000 +Date: 2016-12-21 Authors@R: c(person("Jonah", "Gabry", role = c("aut", "cre"), email = "jsg2201@columbia.edu"), person("Paul-Christian", "Buerkner", role = "ctb")) Maintainer: Jonah Gabry diff --git a/NEWS.md b/NEWS.md index bf360887..2c5c10c0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,12 @@ +# bayesplot 1.1.0.9000 + +(GitHub issue/PR numbers in parentheses) + +#### Fixes +* Avoid error in some cases when `divergences` specified in call to `mcmc_trace` +but there are not actually any divergent transitions. + + # bayesplot 1.1.0 (GitHub issue/PR numbers in parentheses) @@ -23,6 +32,7 @@ axis limits. (#59) * The `stat` argument for all `ppc_stat_*` functions now accepts a function instead of only the name of a function. (#31) + # bayesplot 1.0.0 * Initial CRAN release diff --git a/R/mcmc-traces.R b/R/mcmc-traces.R index 80a74c5e..cbfef7c5 100644 --- a/R/mcmc-traces.R +++ b/R/mcmc-traces.R @@ -250,14 +250,19 @@ mcmc_trace_highlight <- graph <- graph + scale_color_manual("Chain", values = chain_colors(n_chain)) - if (!is.null(divergences)) - graph <- graph + - divergence_rug(divergences, n_iter) + - guides( - color = guide_legend(order = 1), - linetype = guide_legend(order = 2, title = NULL, keywidth = rel(1/2), - override.aes = list(size = rel(1/2))) - ) + if (!is.null(divergences)) { + div_rug <- divergence_rug(divergences, n_iter) + if (!is.null(div_rug)) + graph <- graph + + div_rug + + guides( + color = guide_legend(order = 1), + linetype = guide_legend(order = 2, + title = NULL, + keywidth = rel(1/2), + override.aes = list(size = rel(1/2))) + ) + } } facet_args$facets <- ~ Parameter @@ -313,8 +318,10 @@ divergence_rug <- function(divergences, n_iter, color = "red", size = 1/4) { divergences <- ifelse(divergences == 1, seq_along(divergences), NA) div_info <- data.frame(Divergent = divergences) } - if (all(is.na(div_info$Divergent))) + if (all(is.na(div_info$Divergent))) { message("No divergences to plot.") + return(NULL) + } geom_rug( aes_(x = ~ Divergent, linetype = "Divergence"),