You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R ggplot2设置size图例position='none'不生效,如何删除该图例?

问题原因

你在guide_legend()中传入position='none'的写法无法删除图例,该参数的作用是调整单个图例在全局图例区域内的摆放位置,而非移除该图例,因此无法达到预期效果。

可行解决方案
  • 方案1:直接在guides()中指定关闭size图例,这是最简便的实现方式,同时可保留文本大小随abs(sales)动态变化的映射效果
    仅需要将原代码末尾的guides(size=guide_legend(title='size',position='none'))替换为guides(size = "none")即可。
  • 方案2:如果不需要文本大小动态调整,可将size参数移出aes()映射,直接设置固定大小,不会生成对应图例
    示例修改为:geom_text(aes(label=round(sales,0.1)), size = 4)
  • 方案3:通过scale系列函数关闭size图例
    新增一行代码:scale_size_continuous(guide = "none")
修改后完整可运行代码
library(tidyverse)
plot_data <- data.frame(category=rep(letters[1:5],10),
                        amount=rep(rnorm(5),10))

plot_data %>% group_by(category) %>% summarise(sales=sum(amount)) %>% 
  arrange(-sales) %>% mutate(category=fct_inorder(category)) %>% 
  ggplot(aes(x=category,y=sales)) +
  geom_bar(stat='identity',aes(fill=category)) +
  geom_text(aes(label=round(sales,0.1),size=abs(sales))) +
  theme(legend.position ="top") +
  guides(size = "none")

内容的提问来源于stack exchange,提问作者anderwyang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:45:00