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")
数据可以在这里找到:
我将使用 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"))
我尝试将以下代码构建到闪亮的仪表板中。如果我更改为 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")
数据可以在这里找到:
我将使用 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"))