基于 x 轴在 plotly 上显示工具提示
Show tooltip on plotly based on x-axis
我有一个交互式图表,它显示了预测值和上下置信区间。我的图表看起来和我想要的完全一样,但是工具提示行为不是我想要的。无论如何,是否有根据光标在 x 轴上的位置显示工具提示信息,而不是根据您所在的线或置信区间的特定部分?
## libraries
library(tidyverse)
library(plotly)
## fake data
dat <- data.frame(date = seq(as.Date("1910/1/1"), as.Date("1910/1/10"), "days"),
pred = 1:10,
ci_low = seq(0, 9, 1),
ci_upper = seq(2, 11, 1))
## plot
p1 <- dat %>%
ggplot(aes(x = date, y = pred)) +
geom_line(color = "red") +
geom_ribbon(aes(x = date, ymin = ci_low, ymax = ci_upper), alpha = 0.2, linetype = 0)
## plotly-fy
ggplotly(p1)
例如,如果光标位于 January 08 和 3 的交叉点,我希望工具提示显示预测值和上下置信区间,所有这些都包含在该点上方。此外,如果我滚动在线,我希望也显示置信区间,如下所示。基本上我只想要一个标准的工具提示,它完全根据用户在 x 轴上的位置显示相同的信息,而不管 y 轴。
您可以将hovermode设置为“x统一”:
## libraries
# library(tidyverse)
library(plotly)
## fake data
dat <- data.frame(date = seq(as.Date("1910/1/1"), as.Date("1910/1/10"), "days"),
pred = 1:10,
ci_low = seq(0, 9, 1),
ci_upper = seq(2, 11, 1))
## plot
p1 <- dat %>%
ggplot(aes(x = date, y = pred)) +
geom_line(color = "red", aes(group = 1, text = paste("date:", date, "\npred:", pred, "\nci_low:", ci_low, "\nci_upper:", ci_upper))) +
geom_ribbon(aes(x = date, ymin = ci_low, ymax = ci_upper), alpha = 0.2, linetype = 0)
## plotly-fy
ggplotly(p1, tooltip = c("text")) %>%
layout(hovermode = "x unified") %>%
style(hoverinfo = "skip", traces = 2)
编辑: 要控制显示的悬停信息,我们可以使用 ggplotly
的 tooltip
参数以及自定义“文本”美学。 geom_ribbon-trace 的 hoverinfo 可以通过 style()
.
隐藏
在情节书中你可以找到关于这个的some great examples。
我有一个交互式图表,它显示了预测值和上下置信区间。我的图表看起来和我想要的完全一样,但是工具提示行为不是我想要的。无论如何,是否有根据光标在 x 轴上的位置显示工具提示信息,而不是根据您所在的线或置信区间的特定部分?
## libraries
library(tidyverse)
library(plotly)
## fake data
dat <- data.frame(date = seq(as.Date("1910/1/1"), as.Date("1910/1/10"), "days"),
pred = 1:10,
ci_low = seq(0, 9, 1),
ci_upper = seq(2, 11, 1))
## plot
p1 <- dat %>%
ggplot(aes(x = date, y = pred)) +
geom_line(color = "red") +
geom_ribbon(aes(x = date, ymin = ci_low, ymax = ci_upper), alpha = 0.2, linetype = 0)
## plotly-fy
ggplotly(p1)
例如,如果光标位于 January 08 和 3 的交叉点,我希望工具提示显示预测值和上下置信区间,所有这些都包含在该点上方。此外,如果我滚动在线,我希望也显示置信区间,如下所示。基本上我只想要一个标准的工具提示,它完全根据用户在 x 轴上的位置显示相同的信息,而不管 y 轴。
您可以将hovermode设置为“x统一”:
## libraries
# library(tidyverse)
library(plotly)
## fake data
dat <- data.frame(date = seq(as.Date("1910/1/1"), as.Date("1910/1/10"), "days"),
pred = 1:10,
ci_low = seq(0, 9, 1),
ci_upper = seq(2, 11, 1))
## plot
p1 <- dat %>%
ggplot(aes(x = date, y = pred)) +
geom_line(color = "red", aes(group = 1, text = paste("date:", date, "\npred:", pred, "\nci_low:", ci_low, "\nci_upper:", ci_upper))) +
geom_ribbon(aes(x = date, ymin = ci_low, ymax = ci_upper), alpha = 0.2, linetype = 0)
## plotly-fy
ggplotly(p1, tooltip = c("text")) %>%
layout(hovermode = "x unified") %>%
style(hoverinfo = "skip", traces = 2)
编辑: 要控制显示的悬停信息,我们可以使用 ggplotly
的 tooltip
参数以及自定义“文本”美学。 geom_ribbon-trace 的 hoverinfo 可以通过 style()
.
在情节书中你可以找到关于这个的some great examples。