Skip to content

Instantly share code, notes, and snippets.

@jcheng5
Last active June 17, 2021 18:37
Show Gist options
  • Save jcheng5/3239667 to your computer and use it in GitHub Desktop.
Save jcheng5/3239667 to your computer and use it in GitHub Desktop.
Shiny example: Diamonds Explorer
library(shiny)
library(ggplot2)
function(input, output) {
dataset <- reactive({
diamonds[sample(nrow(diamonds), input$sampleSize),]
})
output$plot <- renderPlot({
p <- ggplot(dataset(), aes_string(x=input$x, y=input$y)) + geom_point()
if (input$color != 'None')
p <- p + aes_string(color=input$color)
facets <- paste(input$facet_row, '~', input$facet_col)
if (facets != '. ~ .')
p <- p + facet_grid(facets)
if (input$jitter)
p <- p + geom_jitter()
if (input$smooth)
p <- p + geom_smooth()
print(p)
}, height=700)
}
library(shiny)
library(ggplot2)
dataset <- diamonds
pageWithSidebar(
headerPanel("Diamonds Explorer"),
sidebarPanel(
sliderInput('sampleSize', 'Sample Size', min=1, max=nrow(dataset),
value=min(1000, nrow(dataset)), step=500, round=0),
selectInput('x', 'X', names(dataset)),
selectInput('y', 'Y', names(dataset), names(dataset)[[2]]),
selectInput('color', 'Color', c('None', names(dataset))),
checkboxInput('jitter', 'Jitter'),
checkboxInput('smooth', 'Smooth'),
selectInput('facet_row', 'Facet Row', c(None='.', names(dataset))),
selectInput('facet_col', 'Facet Column', c(None='.', names(dataset)))
),
mainPanel(
plotOutput('plot')
)
)
@geotheory
Copy link

Hi. This fails for me with Error in grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : polygon edge not found. Any idea why? (edit--- please ignore I just needed to re-install Cairo)
Really useful example, thanks for sharing jcheng5!

@HuichunChien
Copy link

Hi guys, I have a problem of building web apps with R using googleVis on shiny. My OS system is MacbookPro and I use RStudio. I updated GoogleVis to 0.56 version as well as shiny.
When I tried to repeat the first example on the following website (http://www.magesblog.com/2013/02/first-steps-of-using-googlevis-on-shiny.html), I got the error msg below.

Error:

  • Unable to deploy package dependency 'manipulate'

    The package was installed locally from source. Only packages
    installed from CRAN, BioConductor and GitHub are supported.

This is same error msg as the one I got two days ago when I tried to run GoogleVis and shiny together.
According to the website, "using googleVis on shiny" should be feasible, right!?
Any idea what's wrong on my issue?

Thanks for your time on reading and help.

@jmolayem
Copy link

For some reason, my app does not like printing both ggplot and qplot with the same function. Does qplot() have some different print command I'm not aware of?

@jmolayem
Copy link

Nevermind. Found I had another bug. Print command works FINE for both.

@ganong123
Copy link

I am getting an error:

Warning: Error in as.character: cannot coerce type 'environment' to vector of type 'character'
Stack trace (innermost first):
    4: <Anonymous>
    3: do.call
    2: print.shiny.appobj
    1: <Promise>
Error : cannot coerce type 'environment' to vector of type 'character'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment