R语言中调整ggplotly图表悬停提示的百分比格式问题
ggplotly悬停提示消失+百分比格式化解决方法
问题核心原因
- 你将
text参数写在了geom_bar的普通参数中,没有放入aes()美学映射里,ggplotly无法识别对应的tooltip字段,导致悬停提示消失 - 代码未将ggplot绘图结果赋值给
G3变量,直接调用ggplotly(G3)会出现对象找不到的错误 - 要输出无小数百分比,需要给
scales::percent()指定精度参数
修正后可运行代码
# 先赋值绘图结果到G3 G3 <- ggplot(data=ESIF_zajmovi_sektori, aes(x=Mjera, y=Udio, fill=Sektor))+ geom_bar(stat="identity", position="dodge", # text参数放入aes内部,直接用映射变量,避免分组错位 aes(text = paste0("Mjera: ", Mjera, '<br>', "Sektor: ", Sektor, '<br>', "% Udio:", scales::percent(Udio, accuracy = 1)))) + scale_fill_viridis(discrete = TRUE, option = "plasma") + labs(x= "ESIF mjera", y="% udio u ukupnom iznosu") + scale_y_continuous(labels = scales::percent(accuracy = 1)) + theme_minimal() # 转换为交互式图表,指定tooltip为text ggplotly(G3, tooltip = "text")
补充说明
scales::percent()中的accuracy = 1参数表示保留整数位,如果你需要保留1位小数改为accuracy = 0.1即可- 不要在aes()内部使用
数据集$列名的写法,当数据分组/筛选时很容易出现变量对应错位的问题
内容的提问来源于stack exchange,提问作者kosk
相关产品推荐
相关产品推荐

