【问题标题】:Tooltip removes regression line ggplotly工具提示删除回归线 ggplotly
【发布时间】:2017-11-27 09:06:19
【问题描述】:

我在 server.R 中有以下代码:

library(shiny)
library(plotly)

art.data <- read.csv("data1.csv", stringsAsFactors = FALSE)

shinyServer(function(input, output) {

output$distPlot <- renderPlotly({
    col.str <- paste0(input$colspa, ".", input$rgbchoice, ".median")
    p <- ggplot(art.data, aes(x = year, y = art.data[[col.str]], text = paste0(artist, "<br>", art))) + geom_point(size = 1) + xlab("Year") + stat_smooth(method = loess, se = FALSE)
    ggplotly(p , tooltip = "text")
})
})

如果我删除工具提示,则回归线存在于输出图中,但包含工具提示,回归线不会出现在图中。有什么解决方案可以将两者结合在一起?

With tooltip

Without tooltip in ggplotly() and text in aes()

【问题讨论】:

  • 请添加data1.csv 或一些示例数据以获得可重现的示例。
  • 你试过 plotly 包吗?
  • @RahulAgarwal 我试过了,但没有任何效果。下面介绍的解决方案非常有效。

标签: r ggplot2 shiny plotly ggplotly


【解决方案1】:

审美text需要审美group
让我们开始考虑这个例子:

art.data <- data.frame(year=1430:1490, y=rnorm(61), 
            artist=sample(LETTERS,61, replace=T), art=sample(letters,61, replace=T))
col.str <- 2

library(ggplot2)
ggplot(art.data, aes(x = year, y = art.data[[col.str]], 
                     text=paste0(artist, "<br>", art))) + 
    geom_point(size = 1) + 
    stat_smooth(method = loess, se = FALSE) +
    xlab("Year") 

在这种情况下,黄土线没有绘制在图表上:

ggplot 美学中添加group=1 即可解决问题:

p <- ggplot(art.data, aes(x = year, y = art.data[[col.str]], 
                     text=paste0(artist, "<br>", art), group=1)) + 
    geom_point(size = 1) + 
    stat_smooth(method = loess, se = FALSE) +
    xlab("Year") 
p

ggplotly 现在可以正常工作了:

library(plotly)
ggplotly(p, tooltip="text")

【讨论】:

  • 这真的很有帮助!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 2016-02-27
  • 2020-01-28
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-07
相关资源
最近更新 更多