首页 文章

图表气泡图/图表的大小图例

提问于
浏览
6

这是一个图形“气泡” Map (即带有标记的 Map ,其大小映射到变量) . 但是,图例仅显示颜色类别,但不显示尺寸与值的关系 .

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'))

enter image description here

This question显示了如何控制标记的大小,但没有回答如何在图例中显示这些大小 . 在thisthis问题中,我们可以看到,如果每个类别只有一个与之关联的标记大小,则图例将显示缩放到它们在气泡图中的大小的标记 . 但这在这里没有用 . 情节网站上有bubble chartsbubble maps的例子,但这些都没有大小图例 .

有没有办法将标记大小的图例添加到图表中的气泡图/ Map 中?上面的例子使用R api,但使用另一个plotly api(例如python)的答案也是可以接受的 .

编辑:为什么这不是这个问题的重复

我已经在原帖中链接了这个问题,并解释了为什么它不同 . 但是让我试着更清楚地解释一下这个区别,因为有人已将它标记为可能重复...

链接的问题涉及在图例_2569485中显示不同气泡大小的人 . 相比之下,该示例中的类别各自具有不同大小的气泡 . 链接问题中的OP想知道如何摆脱图例中的不同大小 - 而不是如何将值映射到图例中的大小 . 链接问题中的答案为实现这一目标提供了各种质量的解决方法 . 但是,在这个问题中,我已经有了一个标记大小相同的图例 . 我想要的是添加一个图例,该图例显示各种尺寸的气泡,每个气泡都标有该尺寸对应的值 . 链接帖子中没有任何内容询问或显示如何实现这一点 .

1 回答

  • 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))
    

    enter image description here

相关问题