4

我在 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")
})
})

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

带工具提示

ggplotly() 中没有工具提示和 aes() 中的文本

4

1 回答 1

3

审美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") 

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

在此处输入图像描述

添加美学解决了这个问题group=1ggplot

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")

在此处输入图像描述

于 2017-11-27T13:35:50.833 回答