我正在尝试构建一个结合ggplot2plotly的 plotly 。两条垂直线出现在纯ggplot2上,但是一旦我在其上调用plotly::ggplotly,它们就会消失。如何使数据也出现在ggplotly版本上?如果您仅使用plot_ly的解决方案,那也可以。

数据:

df <- structure(list(date = structure(c(17226, 17257, 17287, 17318,
17348, 17379, 17410, 17440, 17471, 17501, 17226, 17257, 17287,
17318, 17348, 17379, 17410, 17440, 17471, 17501, 17226, 17257,
17287, 17318, 17348, 17379, 17410, 17440, 17471, 17501), class = "Date"),
    n = c(253L, 217L, 257L, 166L, 121L, 56L, 68L, 62L, 142L,
    20L, 174L, 228L, 180L, 158L, 80L, 39L, 47L, 54L, 107L, 12L,
    93L, 74L, 47L, 49L, 55L, 16L, 52L, 53L, 32L, 3L), act = c("a",
    "a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "b",
    "b", "b", "b", "b", "b", "b", "b", "c", "c", "c", "c", "c",
    "c", "c", "c", "c", "c")), class = "data.frame", row.names = c(NA,
-30L), .Names = c("date", "n", "act"))

facts_timeline <- structure(list(Date = structure(c(17507, 17293), class = "Date"),
    ShortDescription = c("Marketing Campaign", "Relevant Fact 1"
    )), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
), spec = structure(list(cols = structure(list(Date = structure(list(
    format = ""), .Names = "format", class = c("collector_date",
"collector")), Tenant = structure(list(), class = c("collector_character",
"collector")), ShortDescription = structure(list(), class = c("collector_character",
"collector")), LongDescription = structure(list(), class = c("collector_character",
"collector"))), .Names = c("Date", "Tenant", "ShortDescription",
"LongDescription")), default = structure(list(), class = c("collector_guess",
"collector"))), .Names = c("cols", "default"), class = "col_spec"), .Names = c("Date",
"ShortDescription"))

绘制 plotly 的代码:
p <- df %>%
  ggplot(aes(date, n, group = act, color = act)) +
  geom_line() +
  geom_vline(data = facts_timeline, aes(xintercept = Date))

在这里,您可以看到两条垂直线:
p

但不在这里:
ggplotly(p)

最佳答案

只需将xintercept设置为数字,一切都会起作用。

p <- df %>%
  ggplot(aes(date, n, group = act, color = act)) +
  geom_line() +
  geom_vline(data = facts_timeline, aes(xintercept = as.numeric(Date)))

p

ggplotly(p)

r - 将垂直线添加到ggplotly图-LMLPHP

关于r - 将垂直线添加到ggplotly图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47754080/

10-13 04:33