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

使用rbokeh绘制三组重叠直方图时图例未显示的问题求助

解决rbokeh重叠直方图图例不显示的问题

我来帮你搞定这个图例不显示的问题~ 看了你的代码,大概率是两个小细节导致的:一是颜色调色板的代码被截断(你最后写的color=col...没完成),二是要确保每个ly_hist图层的lname和legend参数都正确关联上。

下面是修复后的完整可运行代码,我帮你补全了颜色定义,并且明确了每个图层的图例文本:

library(rbokeh)

# 先定义好完整的颜色调色板,避免参数缺失
color_palette <- c("#E63946", "#457B9D", "#1D3557")

# 创建基础图表,指定图例显示位置
figure(tools = c(), legend_location = "top_right", padding_factor = 0.01) %>%
  # 第一个直方图图层
  ly_hist(rnorm(10000, mean=0), 
          color = color_palette[1], 
          alpha = 0.3, 
          breaks = 20, 
          lname = "L", 
          legend = "Group L",  # 明确图例上显示的文本
          freq = FALSE) %>%
  # 第二个直方图图层
  ly_hist(rnorm(10000, mean=1, sd=0.25), 
          color = color_palette[2], 
          alpha = 0.3, 
          breaks = 20, 
          lname = "M", 
          legend = "Group M", 
          freq = FALSE) %>%
  # 第三个直方图图层
  ly_hist(rnorm(10000, mean=2, sd=0.5), 
          color = color_palette[3], 
          alpha = 0.3, 
          breaks = 20, 
          lname = "H", 
          legend = "Group H", 
          freq = FALSE)

关键修复点说明:

  • 补全颜色定义:你之前的代码末尾颜色参数被截断,这会导致图层参数不完整,不仅影响颜色显示,还会干扰图例的正常渲染
  • 关联lname与legend:rbokeh需要通过lname标识每个图层,再用legend指定图例上的显示文本,两个参数缺一不可,这样才能把直方图和图例项对应起来
  • 确认图例位置设置:figure里的legend_location="top_right"是有效的位置值,确保图例能显示在预期区域

如果运行后还是没显示图例,可以检查下你的rbokeh版本,建议更新到最新版(执行install.packages("rbokeh")即可),旧版本可能存在图例渲染的小bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:32:53