gpt4 book ai didi

r - ggplotly 破坏了我的 geom_smooth 元素

转载 作者:行者123 更新时间:2023-12-05 05:00:46 24 4
gpt4 key购买 nike

我正在构建一个 NBA R Shiny 应用程序,但在尝试制作交互式绘图时遇到了一个小问题。我的 Geom smooth 元素在我提供的第一组代码中工作,它显示了选定团队胜利边缘的平滑平均值,但是一旦我使用 ggplotly 实现自定义工具提示,geom smooth 元素就会停止工作。

mov_plot <- function(df){
p <- df %>%
ggplot(aes(Date, Margin_of_Victory)) +
geom_col(color = 'black', alpha = 0.7, aes(fill = Outcome)) +
geom_smooth(method = 'loess', se = FALSE, color = 'grey20', alpha = 0.4) +
scale_y_continuous(breaks = c(-25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25)) +
scale_fill_manual(values = c("red", "dark green")) +
labs(x = NULL,
y = 'Margin of Victory',
title = paste0(df$FullName, ' Game Log History \n 2019-2020 NBA Season'),
subtitle = '2019-2020 NBA Season') +
theme_jacob()

ggplotly(p)

}
mov_plot <- function(df){
p <- df %>%
ggplot(aes(Date, Margin_of_Victory, text = paste(Date, '<br>',
Outcome, ' vs', Opponent, '<br>',
'Scoreline: ', team_pts, ' - ', Opp_PTS, '<br>',
'Margin of Victory: ', Margin_of_Victory))) +
geom_col(color = 'black', alpha = 0.7, aes(fill = Outcome)) +
geom_smooth(method = 'loess', se = FALSE, color = 'grey20', alpha = 0.4) +
scale_y_continuous(breaks = c(-25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25)) +
scale_fill_manual(values = c("red", "dark green")) +
labs(x = NULL,
y = 'Margin of Victory',
title = paste0(df$FullName, ' Game Log History \n 2019-2020 NBA Season'),
subtitle = '2019-2020 NBA Season') +
theme_jacob()

ggplotly(p, tooltip = c('text'))

}

下面的两张图片显示了当我使用第二组代码时 geom_smooth 元素消失的问题。

enter image description here

enter image description here

如果有人有 plotly 的经验并且对潜在的修复有任何想法,我将不胜感激!

最佳答案

geom_smooth 层试图包含 text 美学,在您的情况下您不希望这样。我建议您将 text 美学从 ggplot() 父函数移动到 geom_col() 函数,以便将工具提示放在列。

如果有兴趣的读者想将工具提示放在 geom_smooth 上:

text 美学不适用于 geom_smooth,因为 geom_smooth 是聚合层,或者“ggplot2< 生成的汇总统计数据”/”(https://plotly-r.com/controlling-tooltips.html#tooltip-text-ggplotly)。ggplotly 对象有不止一条“轨迹”——第二条轨迹可能是 geom_smooth 层。您可以通过先保存 ggplotly 对象

来探索这些子对象
w <- ggplotly(p)

然后查看 w$x$data。在 geom_smooth 上,工具提示将是“连续的”,因此水平轴变量和垂直轴变量可能保存在 w$x$data[[2]]$xw$x$data[[2]]$y 分别。因此,工具提示中的文本可以填充这些向量:

# Suppress the tooltip on the columns and supply custom text to the smooth line
w %>%
style(hoverinfo = "skip", traces = 1) %>%
style(text = paste0(
"Date: ", w$x$data[[2]]$x, "\nMargin of Victory: ", w$x$data[[2]]$y
), traces = 2)

关于r - ggplotly 破坏了我的 geom_smooth 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63001515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com