ggvis add_tooltip 不适用于 layer_bars

ggvis add_tooltip is not working with layer_bars

我尝试将以下代码构建到闪亮的仪表板中。如果我更改为 layer_point 代码有效。

我尝试改为 layer_rect - 但是,我无法获得带有图层矩形的堆积条形图。

我在错误下方附上了照片。

color_choices <- c("#08519C","#238B45")

tab2_1 %>%  
  ungroup() %>%
  ggvis(x=~variable, y=~value, fill = ~Tender_won) %>%
  layer_bars() %>% 
  add_axis("y",title="Volume",title_offset=80) %>%
  add_axis("x",title ="Year") %>%
  scale_ordinal("fill",range = color_choices) %>%
  add_tooltip(function(data) paste0("test1",data$value,"test2")) %>%
  add_legend(scales = "fill", values = c("No","Yes"), title = "Tender Status")

数据可以在这里找到:

https://www.dropbox.com/s/3lq6qncru0xuvoc/helphelp.csv?dl=0

我将使用 compute_stack 文档中的 hec 示例来向您展示一些有关如何将工具提示添加到堆叠条形图的示例。工具提示的确切性质取决于您希望工具提示显示的数据。我的猜测是您想显示每个堆叠条形部分的长度(原始数据集中的实际 y 值)。

它帮助我了解用于绘图的 layer_bars 数据集是什么样的。您可以通过直接使用 compute_stack 并查看生成的数据集来看到这一点。

hec = as.data.frame(xtabs(Freq ~ Hair + Eye, HairEyeColor))
hec %>% compute_stack(~Freq, ~Hair)

Source: local data frame [16 x 6]

     Hair    Eye  Freq group__ stack_upr_ stack_lwr_
   (fctr) (fctr) (dbl)  (fctr)      (dbl)      (dbl)
1   Black  Brown    68   Black         68          0
2   Brown  Brown   119   Brown        119          0
3     Red  Brown    26     Red         26          0
4   Blond  Brown     7   Blond          7          0
5   Black   Blue    20   Black         88         68
6   Brown   Blue    84   Brown        203        119
7     Red   Blue    17     Red         43         26
8   Blond   Blue    94   Blond        101          7
9   Black  Hazel    15   Black        103         88
10  Brown  Hazel    54   Brown        257        203
11    Red  Hazel    14     Red         57         43
12  Blond  Hazel    10   Blond        111        101
13  Black  Green     5   Black        108        103
14  Brown  Green    29   Brown        286        257
15    Red  Green    14     Red         71         57
16  Blond  Green    16   Blond        127        111

请注意,用于绘制每个条形的每个部分的上下 y 坐标称为 stack_upr_stack_lwr_。虽然这些值基于原始 y 变量 Freq,但并未直接绘制 Freq 值。我认为这可能是让您失望的原因。

根据此信息,如果您希望工具提示显示原始 y 值,您只需从工具提示中的上 y 坐标中减去每个堆栈的下 y 坐标即可。

hec %>% ggvis(x = ~Hair, y = ~Freq, fill = ~Eye) %>%
    layer_bars() %>%
    add_tooltip(function(data) paste0("test1 ", data$stack_upr_ - data$stack_lwr_, " test2"))