修复气泡图图例

Posted

技术标签:

【中文标题】修复气泡图图例【英文标题】:Fix bubble plot legend 【发布时间】:2022-01-13 04:48:02 【问题描述】:

我正在尝试绘制hollow 气泡图。除了图例没有在legend 中显示气泡大小外,该图很好。在图例中可以看到bubble中的增量没有在图例中显示。

我该如何解决这个问题?

我确实看过this 和this 的问题,但它并没有解决这个传说。

代码+示例数据

library(elevatr)
library(sf)
library(sp)
library(tidyverse)

# Create an example data.frame
set.seed(65.7)
examp_df = data.frame(x = runif(3, min = -73, max = -72.5), y = runif(3, min = 42,
    max = 43))
prj_dd = "EPSG:4326"

# Create and example data.frame with additional columns
cats = data.frame(category = c("H", "M", "L"))

examp_df2 = data.frame(examp_df, cats)

# Create an example SpatialPoints
examp_sp = SpatialPoints(examp_df, proj4string = CRS(prj_dd))

    # Create an example SpatialPointsDataFrame
    examp_spdf = SpatialPointsDataFrame(examp_sp, data = cats)
    # Get elevation data
    spdf_elev_epqs = get_elev_point(examp_spdf, src = "epqs")
    # Convert to sf object
    examp_sfdf = st_as_sf(spdf_elev_epqs)
    # Plot
    ggplot() +
      geom_sf(data = examp_sfdf, aes(size = elevation ), shape = 1, show.legend = T) +
      coord_sf() +
      theme(axis.text.x = element_text(angle = 90)) +
          labs( size = "Mean Elevation (meters)")

剧情

【问题讨论】:

如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则会更容易为您提供帮助。 我的图例在运行您的示例后有效:气泡有不同的大小。 (R 4.1.0) 我在全新环境中重新运行了您提供的代码。 这一定是由于 R 本身。 RStudio 只是 IDE。如果会话重启不起作用,您可以尝试隔离的新鲜 docker 图像(我使用 rocker/verse:4.1.0 你可能刚加入种子就清理了环境 【参考方案1】:

编辑:较新版本的问题只涉及一种规模。

似乎美学size 用于矩形和圆形几何。 ggplot2 默认情况下合并轴,并且只显示其中一个。您可以使用 R 包 ggnewscale 明确地拥有多个尺寸比例。

这是一个最小的可重现示例:

library(tidyverse)
library(ggnewscale)

diamonds %>%
  head() %>%
  ggplot(aes(cut, color)) +
    geom_point(aes(size = x), shape = 1, color = "red") +
    scale_size(limits = c(0, 10)) +
    new_scale(new_aes = "size") +
    geom_point(aes(size = y), shape = 1, color = "blue")

由reprex package (v2.0.1) 于 2021-12-08 创建

【讨论】:

谢谢,但是当我在上面的代码中使用scale_sizenew_scale 参数时,我收到了这个错误Error in check.length(gparname) : 'gpar' element 'fontsize' must not be length 0。同样在我的情况下,我只有一个 size 参数。 您的新示例只有一种尺寸,因此您不再需要new_scale

以上是关于修复气泡图图例的主要内容,如果未能解决你的问题,请参考以下文章

使用 ggplot 自定义气泡图图例

为 ggplot 气泡图创建同心圆图例

如何在 d3 中为气泡图创建图例?传说没有出现

可视化实验十一:利用Python绘制气泡图雷达图

可视化实验十一:利用Python绘制气泡图雷达图

R语言ggplot2可视化气泡图:无填充色的气泡图自定义填充色的气泡图