我有以下代码,我正在尝试构建闪亮的仪表板。如果我改为layer_point代码可以工作。
我尝试更改为layer_rect - 但是我无法获得带有图层rects的堆积条形图。
我在错误下方附上了一张照片。
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")
数据可以在这里找到:
答案 0 :(得分:2)
我将使用hec
文档中的compute_stack
示例向您展示如何向堆叠条形图添加工具提示的一些示例。工具提示的确切性质取决于您希望工具提示显示的数据。我的猜测是你要显示每个堆积条形部分的长度(原始数据集中的实际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"))