Turns out the culprit was plotly.R:
#...
shp <- shapviz(predictor, X_pred = data.matrix(X_full), X = X_full)
sv_wf <- sv_waterfall(shp, row_id = 1)
ggplotly(sv_wf)
As it turns out, shapviz' waterfall plot isn't a true waterfall plot, a la plotly or ggplot2. It's built on geom_gene_arrow from GitHub - wilkox/gggenes: ➡️️➡️️⬅️️➡️️ Draw gene arrow maps in ggplot2
Warning message in geom2trace.default(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): “geom_GeomGeneArrow() has yet to be implemented in plotly. If you'd like to see this geom implemented, Please open an issue with your example code at https://github.com/ropensci/plotly/issues
Warning message in geom2trace.default(dots[[1L]][[2L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): “geom_GeomGeneArrow() has yet to be implemented in plotly. If you'd like to see this geom implemented, Please open an issue with your example code at https://github.com/ropensci/plotly/issues
Warning message in geom2trace.default(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): “geom_GeomFitText() has yet to be implemented in plotly. If you'd like to see this geom implemented, Please open an issue with your example code at https://github.com/ropensci/plotly/issues
Warning message in geom2trace.default(dots[[1L]][[2L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): “geom_GeomFitText() has yet to be implemented in plotly. If you'd like to see this geom implemented, Please open an issue with your example code at https://github.com/ropensci/plotly/issues
So until someone PRs in an implementation, plotly doesn't know how to render it. Go figure 