使用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
相关产品推荐
相关产品推荐

