I'm trying to add a regression line to a simple scatterplot using rCharts in a Shiny app, but I can't get it to work. The following code displays the graph just fine (sans regression line) if you remove the p$layer()
call. With it, the graph's axes are hidden, and there is no line, although the points still display. What am I doing wrong?
Thanks for your help.
output$kplot = renderChart({
# Create dependency on submit button.
input$submit
# Add point when submit button is clicked.
dataset = isolate(rbind(dataset, c(input$add_x, input$add_y)))
# Re-fit data.
dataset$fit = lm(dataset$mpg ~ dataset$hp)$fitted.values
# Calculate graph minimums and maximums
xmin = max(min(dataset$hp) - 10, 0) # Cut threshold at zero.
xmax = (max(dataset$hp) + 11) + (50 - ((max(dataset$hp) + 10) %% 50))
ymin = 0
ymax = (max(dataset$mpg) + 1) + (5 - ((max(dataset$mpg) + 5) %% 5))
p = rPlot(mpg ~ hp, data=dataset, type="point")
p$addParams(dom="kplot")
p$guides(
x = list(
min = xmin,
max = xmax,
numticks = xmax / 50 + 1,
title = "HP"
),
y = list(
min = ymin,
max = ymax,
numticks = ymax / 5 + 1,
title = "MPG"
)
)
p$layer(y=dataset$fit, copy_layer=T, type="line", color=list(const="red"))
return(p)
})