I’m super excited about plotly 4.7.0 – it includes numerous improvements and new features related to performance, mapping, and API requests. It also includes support for something
folks have wanted for a very long time – fixed coordinates via
ggplotly()
! In other words, if you use
coord_equal()
,
coord_fixed()
, etc to specify a ratio between the visual represntation of data units on positional axes (a key property of maps) in
ggplot2, it should just work
TM when converted via
ggplotly()
! It also has support for the stellar new
geom_sf()
– an official
ggplot2 geom that is so new, it is currently only available through the development version of
ggplot2. For this and other reasons, I recommend using the development version of
ggplot2 if you can:
devtools::install_github("tidyverse/ggplot2")
install.packages("plotly")
At plotcon Oakland, I held a
workshop where I touched on why the new
sf package and
geom_sf()
are so awesome for mapping in R, and
how to make these maps interactive via ggplotly()
. There are lots of other goodies in those workshop slides, such as
embedding raster images, converting
ggmap plots, an overview of
animation,
highlighting, and
filtering. Also, some of the “your turn” exercises show you how to combine these concepts to do neat stuff like
outline geo-spatial polygons on hover or
annotate geo-spatial polygons on click:
Updating to 4.7.0 may also yield big speed improvements at print time, especially when plotting a large number of lines, paths, or polygons in a single trace. For a bit of context, this fairly simple example with 46 lines now takes a third of the time to print (about 1 instead of 3 seconds).
plot_ly(txhousing) %>%
group_by(city) %>%
add_lines(x = ~date, y = ~median)
The speed-up is a direct result of making (the previously internal, but now exported) function
group2NA()
much more efficient (huge thanks to Matt Summersgill for the help here). This function is used on any ggplot2 geom which can be reduced to a path or a polygon, so the impact should be large and widespread! This improvement was made possible through the new
data.table dependency, which I hope to leverage more down the road to make other plots faster to print.
This release also updates the plotly.js version from 1.26.1 to 1.27.1, so you can leverage the latest plotly.js features, such as
parallel coordinates and
Sankey diagrams. Numerous other improvements and bug fixes (especially for
api_create()
) are coming with this release, please see the
NEWS file for more info.
Happy plotting!