A few months ago I wrote code to add overlaid paths to a scatterplot map, and it worked fine. (The paths were unrelated to underlying scatterplot.) I tried running my code again (v 4.7.0) and it’s now broken. Plotly apparently wants the add_paths function to take data arguments with lengths equal to the number of scatterplot points. However, I want to draw superimposed lines that are unrelated to the underlying scatterplot. I’ve modified the “Basic Scatter on Map” example from https://plot.ly/r/scatter-plots-on-maps/ to demonstrate this issue:
library(plotly)
df <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_february_us_airport_traffic.csv')
# geo styling
g <- list(
scope = 'usa',
projection = list(type = 'albers usa'),
showland = TRUE,
landcolor = toRGB("gray95"),
subunitcolor = toRGB("gray85"),
countrycolor = toRGB("gray85"),
countrywidth = 0.5,
subunitwidth = 0.5
)
p <- plot_geo(df, lat = ~lat, lon = ~long) %>%
add_markers(
text = ~paste(airport, city, state, paste("Arrivals:", cnt), sep = "<br />"),
color = ~cnt, symbol = I("square"), size = I(8), hoverinfo = "text"
) %>%
colorbar(title = "Incoming flights<br />February 2011") %>%
layout(
title = 'Most trafficked US airports<br />(Hover for airport)', geo = g
)
p # works fine
# latitude and longitude data for drawing line
line.lng = seq(-116,-55,length.out = 25)
line.lat = seq(56,48,length.out = 25)
p %>% add_paths(x=~line.lng,y=~line.lat,
line=list(color="62037d",
width=8,
dash="solid"))
# throws error, saying that the lat/lon data supplied to
# add_paths has to be the same length as the number of data points
# on the underlying scatterplot - this did not happen in an earlier version
Any suggestions would be greatly appreciated.