Shiny Plotly несколько сглаженных линий на основе цвета - PullRequest
0 голосов
/ 04 апреля 2019

заранее благодарю за помощь. Я пытаюсь использовать заговор в блестящем приложении, которое у меня есть. Я немного новичок в заговоре, поэтому я прошу прощения, если это не просто. Я хотел бы использовать диаграмму рассеяния, которая рисует каждую точку разным цветом на основе входных данных $ Col, а затем для каждой группы в пределах входных данных $ Col я хотел бы нарисовать сглаженную линию для каждого цвета. Все работает отлично, за исключением того факта, что когда я использую add_lines (), он просто рисует одну линию и не различает различные цвета на графике рассеяния.

 plot_ly(poolfinderdata1(), type = "scatter", x = ~get(input$X), 
      y = ~get(input$Y),
      mode = "markers",
      color = ~get(input$Col),
      symbol = as.factor(poolfinderdata1()$Matcher))%>%
      add_lines(y = ~fitted(loess(get(input$Y) ~ get(input$X)), 
 color ~  get(input$Col)))%>%
 layout(xaxis =list(title= input$X), yaxis = list(title = input$Y))

1 Ответ

0 голосов
/ 04 апреля 2019

ggplot2 существует уже давно, поэтому в нем уже есть куча вещей, которые вы можете использовать, и я думаю, что изучение этого стоит усилий, тем более что вы можете превратить свои графики в интерактивные с помощью функции ggplotly.Вот один из способов решения вашей проблемы:

library(plotly)
library(ggplot2)
data <- poolfinderdata1()
data[[input$Col]] <- as.factor(data[[input$Col]]) # so the color is mapped as discrete
data$Matcher <- as.factor(data$Matcher) # same for the markers
p <- ggplot(data, aes_string(x = input$X, y = input$Y, color = input$Col)) +
     geom_point(aes(shape = Matcher)) +
     geom_smooth(method = "loess")
ggplotly(p)

Надеюсь, это поможет.

...