这是一个图形“气泡”地图(即带有标记的地图,其大小映射到变量)。但是,图例仅显示颜色类别,但不显示尺寸与值的关系。
library(plotly)
DF = data.frame(
Group = c("A", "B", "A", "B", "A", "C", "C"),
Value = c(100, 80, 90, 150, 120, 60, 110),
lat = c( 40, 32, 36, 44, 31, 39, 37),
long = c(-90, -100, -120, -110, -90, -80,-105))
plot_geo(DF, locationmode = 'USA-states') %>%
add_markers(y=~lat, x=~long, color=~Group, size=~Value,
marker=list(sizeref=0.1, sizemode="area")) %>%
layout(geo=list(scope = 'usa'))
This question显示了如何控制标记的大小,但没有回答如何在图例中显示这些大小。在this和this问题中,我们可以看到,如果每个类别只有一个与之关联的标记大小,那么图例将显示缩放到它们在气泡图中的大小的标记。但这在这里没有用。情节网站上有bubble charts和bubble maps的示例,但这些都没有尺寸图例。
有没有办法将标记大小的图例添加到气泡图/地图中?上面的例子使用R api,但使用另一个plotly api(例如python)的答案也是可以接受的。
我已经在原帖中链接了这个问题,并解释了为什么它不同。但是让我试着更清楚地解释一下这个区别,因为有人已经将它标记为可能的副本......
链接的问题涉及到某个人在传奇中出现不同的气泡大小,因为他们的数据中每个类别只有一个尺寸。相比之下,该示例中的类别各自具有不同大小的气泡。链接问题中的OP想要知道如何摆脱图例中的不同大小 - 不如何将值映射到图例中的大小。链接问题中的答案为实现这一目标提供了各种质量的解决方法。但是,在这个问题中,我已经有了一个标记大小相同的图例。我想要的是添加一个图例,该图例显示各种尺寸的气泡,每个气泡都标有该尺寸对应的值。链接帖子中没有任何内容询问或显示如何实现这一目标。
答案 0 :(得分:10)
在看到关于这个问题的一些评论表明无法做到这一点之后,我让另一个人自己动手了,这是一种非常好的方法。
legend.sizes = seq(80, 160, 20)
ax = list(zeroline = FALSE, showline = FALSE, showticklabels = FALSE, showgrid = FALSE)
mk = list(sizeref=0.1, sizemode="area")
p.map = plot_geo(DF, locationmode = 'USA-states') %>%
add_markers(x = ~long, y = ~lat, color = ~Group, size = ~Value, marker = mk) %>%
layout(geo = list(scope = 'usa'))
p.legend = plot_ly() %>%
add_markers(x = 1, y = legend.sizes, size = legend.sizes, showlegend = F, marker = mk) %>%
layout(xaxis = ax, yaxis = list(showgrid = FALSE))
subplot(p.legend, p.map, widths = c(0.1, 0.9))