r-当条形图按ggplotly中的值排序时,如何在barchart工具提示上显示变量名称



我有一个ggplot,条形图按值排序,并按plotly::ggplotly渲染,使其具有交互性。但是,在图形上,将鼠标悬停在条形图上会将变量名称显示为reorder(category, n)

提示显示:

reorder(category, n): xxx
n: xxx
subCategory: xxx

我在工具提示上需要的是:

category: xxx
subCategory: xxx
n: xxx

有人知道我该怎么解决吗?我不知道该怎么办…

下面是我的绘图代码:

library(dplyr)
library(ggplot2)
library(plotly)
df = data.frame(category=c('A','A', 'B', 'B','C','C', 'D','D'),
subCategory = c('Y', 'N', 'Y', 'N', 'Y', 'N','Y', 'N'),
n=c(120, 22, 45, 230, 11, 22, 100, 220))
df %>% 
ggplot(aes(x=category, y=n, fill=subCategory))+
geom_bar(stat='identity')
g=df %>% 
ggplot(aes(x=reorder(category, n), y=n, fill=subCategory))+
geom_bar(stat='identity')
ggplotly(g)

一种可能的解决方案是不在ggplot中使用reorder,而是在将x轴传递到ggplot之前对其重新排序,例如:

g=df %>% arrange(n) %>% 
mutate(category = factor(category, unique(category))) %>%
ggplot(aes(x=category, y=n, fill=subCategory))+
geom_bar(stat='identity')+
labs(x = "Category")
ggplotly(g)

另一个选项是将ggplot中的参数设置为在ggplotlytooltip参数中使用,例如:

g=df %>% 
ggplot(aes(x=reorder(category, n), y=n, fill=subCategory, 
text = paste("category:", category), text2 = n, text3 = subCategory))+
geom_bar(stat='identity')+
labs(x = "Category")
ggplotly(g, tooltip = c("text","text2","text3"))

它能回答你的问题吗?

相关内容

  • 没有找到相关文章

最新更新