I'm an experienced R user venturing into plotly-r. (I am also new to working with geo data.) I'm trying to build an interactive choropleth and I've been able to get pretty close to what I want with ggplot()
>> ggplotly()
, but I also want to be able to do the same thing starting with plot_ly()
.
I'm having a problem with tooltips. I've been able to set up custom tooltips using the first workflow, but I can't figure out how to do it when starting with plot_ly()
. My code is below. The tooltip shows values from the split
argument to add_sf()
. I want it to show the string contained in the tmp1$text
.
tmp0 <-
ct.covid.positivity.0 %>%
select(Town, town.positivity, pop.2010, tests.10k)
tmp1 <-
ct.shp %>%
left_join(tmp0, by=c("NAME10" = "Town")) %>%
mutate(text=paste0(NAME10,
"\nTest Pos: ", formatC(town.positivity, format="f", digits=2), "%",
"\nPopulation: ", formatC(pop.2010, format="d"),
"\nTests/10k/day: ", formatC(tests.10k/10, format="f", digits=2)))
map.positivity.plotly <-
plot_ly(data=tmp1, # plot_ly and plot_geo both get coordinate system wrong in different ways (cf. ggplotly)
hoverinfo='text',
text=~text) %>%
add_sf(
split=~NAME10, # hover text seems determined by split variable
color=~town.positivity,
colors="magma", # set colorscale
alpha=1,
stroke=I("grey90")
) %>%
config(displayModeBar = FALSE) %>%
layout(hovermode = "closest",
hoverlabel = list(bgcolor="darkgreen",
bordercolor="black",
font=list(color="white", family = "Roboto Condensed", size=15)
),
title = list(text = paste("<b>10 Day Average Covid-19 Test Positivity in Connecticut Towns\nfor period ending",
format(max(ct.covid$Date), "%B %d, %Y"), "</b>"),
x = 0,
xanchor = "left",
yanchor = "top",
pad = list(b=10, l=10, r=10, t=10))) %>%
colorbar(title = "<b>Test Positivity (%)</b>") %>%
hide_legend()