Неверный текст наведения на сюжет - PullRequest
0 голосов
/ 13 октября 2018

Итак, у меня есть график, который показывает фактическое значение, смоделированное значение и ошибку. Ниже приведен код для того же.

library(plotly)
library(ggplot2)

ab <-tibble::tribble(
  ~modeled, ~actuals, ~weekenddate,  ~err,
    501384,   481864, "2014-02-02", 19519,
    488933,   479078, "2014-02-09",  9856,
    484191,   464026, "2014-02-16", 20165,
    480443,   460339, "2014-02-23", 20104,
    482512,   464021, "2014-03-02", 18491,
    488843,   462458, "2014-03-09", 26385
  )


test_bottom <- ggplot(ab, aes(x = weekenddate, y = actuals)) +
  geom_smooth(method = "lm", se = FALSE, color = "lightgrey") +  # Plot regression slope
  geom_segment(aes(xend = weekenddate, yend = modeled), alpha = .2) +  # alpha to fade lines
  # > Alpha adjustments made here...
  geom_point(aes(color = err)) +  # Alpha mapped to abs(residuals)
  scale_color_gradient2(low = "blue", mid = "white", high = "red") +
  guides(color = FALSE) +  # Alpha legend removed
  geom_point(aes(y = modeled), shape = 1) +
  theme_bw()

ggplotly(test_bottom)


<sup>Created on 2018-10-12 by the [reprex package](https://reprex.tidyverse.org) (v0.2.1)</sup>

enter image description here

Если вы видите указатель мыши, он показывает смоделированное и фактическое значение.При наведении указывается только смоделированное значение и красная точка, когда при наведении указывается только фактическое значение вместе с ошибкой.

Как это можно сделать.

1 Ответ

0 голосов
/ 13 октября 2018

Решение состоит в том, чтобы определить text эстетику в ggplot, а затем указать в ggplotly, что text должно отображаться во всплывающей подсказке.

library(plotly)
library(ggplot2)

ab <-tibble::tribble(
  ~modeled, ~actuals, ~weekenddate,  ~err,
    501384,   481864, "2014-02-02", 19519,
    488933,   479078, "2014-02-09",  9856,
    484191,   464026, "2014-02-16", 20165,
    480443,   460339, "2014-02-23", 20104,
    482512,   464021, "2014-03-02", 18491,
    488843,   462458, "2014-03-09", 26385
  )
names(ab)[4] <- "Error"

test_bottom <- ggplot(ab, aes(x = weekenddate, y = actuals, 
  text=paste0("Date:", weekenddate, "<br>Modeled:", modeled, "<br>Actuals:", actuals))) +
  geom_smooth(method = "lm", se = FALSE, color = "lightgrey") +
  geom_segment(aes(xend = weekenddate, yend = modeled), alpha = .2) +  
  geom_point(aes(color = Error)) +  
  scale_color_gradient2(low = "blue", mid = "white", high = "red") +
  guides(color = FALSE) + 
  geom_point(aes(y = modeled), shape = 1) +
  theme_bw()

ggplotly(test_bottom, tooltip=c("text","Error"))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...