当按ggplotly中的值对条进行排序时,如何在条形图工具提示上显示变量名

时间:2020-04-28 22:51:08

标签: r ggplot2 r-plotly ggplotly

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

tootips显示:

    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)

1 个答案:

答案 0 :(得分:1)

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

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中的参数以用于tooltip的{​​{1}}参数中,例如:

ggplotly

它回答了您的问题吗?

相关问题