Блестящий, R: Флажок, geom_hline, ggplot - PullRequest
0 голосов
/ 04 октября 2018

в моем блестящем приложении я хотел бы добавить geom_hline в моем ggplot только тогда, когда пользователь выбирает сделать это с флажком, также я бы хотел, чтобы пользователь установил yintercept с помощью numericInput.Я считаю, что есть простое решение, но, поскольку я не программист, я хотел бы спросить, какой из них был бы самым простым.Мой код выглядит так:

в пользовательском интерфейсе:

numericInput('hline', label ='Limits', 0)

и на сервере:

 plotInput <- reactive({



    ggplot(data = dataforplot(), aes(x = ID_Polymer, y = value), position = position_dodge(width = 1))  +
      geom_bar(aes_string( fill=razeni()), position = position_dodge(width = 1), stat="identity", color="white")+
      theme_minimal() +
      theme(legend.text=element_text(size=21))+
      theme(text = element_text(size=21))+
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
      ggtitle(input$title_text_box_id) + 

      geom_hline(aes(yintercept = input$hline, linetype = "Minimal limit"), color='red', size=0.4)+

      labs(x = "", y = input$ylabel_text_box_id) + 
      geom_text(aes(x = ID_Polymer, y = value,Group=Polymer,label=value), 
                position = position_dodge(width = 1),vjust=2, size=5,colour = "white", fontface = "bold") +
      scale_fill_tableau("Tableau 10")+
     scale_x_discrete(labels=c(xpopisky()))#puts a reactive in x labels

  })

, который работает, только я не знаю лучший способСкажите блестящему «покажите geom_hline только тогда, когда я сообщу вам, установив флажок», должен быть задействован цикл if else.Большое спасибо за любые предложения!

1 Ответ

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

Вы можете назначить объекты ggplot переменной.Следующий псевдокод демонстрирует это:

p = ggplot(data = ......) +
      geom_bar(....) +
      theme(....)

if(input$hline){
    p = p + geom_hline(....)
}

Обратите внимание, что ваш вопрос будет улучшен, если вы предоставите минимальный рабочий пример.Прямо сейчас код в вашем вопросе содержит не относящиеся к делу детали (например, тема и ярлыки ggplot) и не может быть запущен как есть.

...