2017-09-06 7 views
0

UI에 의해 수득를 발현 : 사용자가 기능을 지정할 x^2 - 2 입사R 반짝이 : 문자열을 사용하여 플롯 표제의 식 I은 다음과 R 코드 작성한

remove(list = ls()) 
library(shiny) 
library(ggplot2) 

ui <- pageWithSidebar(
    headerPanel('Plot a function'), 
    sidebarPanel(
    textInput("func", "Function to plot:", value = "x"), 
    numericInput("xMin", "Set the minimum of x: ", value = 0), 
    numericInput("xMax", "Set the maximum of x: ", value = 10), 
    submitButton("Plot") 
), 
    mainPanel(plotOutput("plot")) 
) 

server <- function(input, output) { 
    output$plot <- renderPlot({ 
    x <- seq(input$xMin, input$xMax, 0.01) 
    f <- function(x) { 
     eval(parse(text = input$func)) 
    } 
    y <- f(x) 
    df <- data.frame(x, y) 
    theme_set(theme_bw(base_size = 12)) 
    figure <- ggplot(df, aes(x, y)) + 
     geom_line() + 
     labs(x = "x", 
      y = "y", 
      title = parse(text = input$func)) + 
     theme(plot.margin = unit(c(.6, .6, .6, .6), "cm"), 
      plot.title = element_text(hjust = 0.5)) 
    plot(figure) 
    filename <- "plotFunction.jpeg" 
    ggsave(filename, 
      width = 6, 
      height = 4, 
      dpi = 200) 
    }) 
} 

shinyApp(ui = ui, server = server) 

를, I는 다음과 같은 결과를 얻었다 :

Output of the code

나는 음모의 제목 (전체 제목 x^2y = x^2 - 2가 제대로 렌더링 될 수 있도록) y = 시작 싶지만 UNA왔다 그렇게 할 수 있습니다. 예를 들어, 사용자 입력 문자열을 y =과 연결하면 제목은 (= y, x^2 - 2)이됩니다 (그러나 x^2은 올바르게 렌더링됩니다).

+1

그냥'수정 같은 ggplot에서 title''구문 분석 (텍스트 = 붙여 넣기 ("Y ="입력 $의 FUNC)))' – parth

+0

그것은 작동하지 않습니다 @parth. 변경하면 제목은 = (y, x^2 - 2)가됩니다 (x^2가 올바르게 렌더링 됨). – mozartbeethovenbrahms

+0

@parth'==':-) –

답변

0

당신은 할 수 있습니다 :

labs(title = parse(text=paste0("y == ", input$func))) 
+0

Laurent 작품입니다. 고맙습니다! 그걸 참고할 수 있니? – mozartbeethovenbrahms