R 交互式几何图形栏中的栏切换位置

R 交互式几何图形栏中的栏切换位置,r,ggplot2,shiny,R,Ggplot2,Shiny,Pb:当我点击geom_条时,尽管我在aes调用中正确设置了级别,但条会切换位置。 请尝试下面我能想到的最简单的例子。 它所做的只是将alpha添加到单击的条下面的条中。 问题:单击条并看到它们切换位置 alpha添加了“type”变量,该变量在单击事件时在dat()中更新。 如果我在geom_bar中停用aes调用,问题就不会发生。如果我把alpha放在主aes()而不是geom_bar中,也不会发生这种情况 reactiveVal dat()的类型不变,因此,即使条切换位置,对于单击逻辑,它

Pb:当我点击geom_条时,尽管我在aes调用中正确设置了级别,但条会切换位置。 请尝试下面我能想到的最简单的例子。 它所做的只是将alpha添加到单击的条下面的条中。 问题:单击条并看到它们切换位置

alpha添加了“type”变量,该变量在单击事件时在dat()中更新。 如果我在geom_bar中停用aes调用,问题就不会发生。如果我把alpha放在主aes()而不是geom_bar中,也不会发生这种情况

reactiveVal dat()的类型不变,因此,即使条切换位置,对于单击逻辑,它们也不会切换(您可以通过在同一点上单击两次来测试这一点:在第一条上切换位置,而不是在第二条上)

库(闪亮);图书馆(tidyverse)

ui问题似乎是,在a组和b组中,条形图开始按值排序,但是,当您单击条形图时,截断变量的值从全部为真变为真与假的混合。这将导致绘图尝试按截止值对组内的条进行排序,因为它是一个因子(具有真值的条始终切换到任何具有假值的条的右侧,而假条返回到按值排序,全部在组a和b内)。为了避免发生这种情况,您可以在geom_栏中包含所有AE,因此您的绘图函数如下所示:

g <- ggplot(dat()) +
  geom_bar(
    aes(x = name, y = value, 
        fill = factor(type, 
                      levels = type %>%
                        as.character() %>%
                        unique() %>% 
                        sort()),
        alpha = cut_off %>% factor(levels = c(FALSE, TRUE))),
    position = "dodge",
    stat = "identity"
  ) +
  scale_alpha_discrete(guide = "none", drop = FALSE)
g%
as.character()%>%
唯一()%>%
排序()),
α=截止%>%因子(级别=c(假、真)),
position=“道奇”,
stat=“身份”
) +
比例α离散(guide=“无”,drop=FALSE)
g <- ggplot(dat()) +
  geom_bar(
    aes(x = name, y = value, 
        fill = factor(type, 
                      levels = type %>%
                        as.character() %>%
                        unique() %>% 
                        sort()),
        alpha = cut_off %>% factor(levels = c(FALSE, TRUE))),
    position = "dodge",
    stat = "identity"
  ) +
  scale_alpha_discrete(guide = "none", drop = FALSE)