Description Usage Arguments Examples
Add panning and zooming to almost any R graphics from base graphics, lattice, and ggplot2 by using the JavaScript library svg-pan-zoom.
1 2 3 4 5 6 7 8 |
svg |
one of
|
viewBox |
|
... |
other configuration options for svg-pan-zoom.js.
See svg-pan-zoom How To Use
for a full description of the options available. As an example to turn on
|
width, height |
valid CSS unit (like "100%", "400px", "auto") or a number, which will be coerced to a string and have "px" appended |
elementId |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | # svgPanZoom tries to be very flexible with its first argument
# in this first example use SVG as a character string
# this is probably the least likely use case
library(svgPanZoom)
svgPanZoom('
<svg style="height:300px;width:300px;">
<circle cx="60" cy="60" r="50" style="fill:none;stroke:blue;"/>
</svg>
')
## Not run:
library(svgPanZoom)
# first let's demonstrate a base plot
# use svglite for now
library(svglite)
library(lattice)
svgPanZoom( svglite:::inlineSVG( plot(1:10) ) )
svgPanZoom(svglite:::inlineSVG(show( xyplot( y~x, data.frame(x=1:10,y=1:10) ) )))
# the package gridSVG is highly recommended for lattice and ggplot2
# second let's demonstrate a lattice plot
library(lattice)
svgPanZoom( xyplot( y~x, data.frame(x=1:10,y=1:10) ) )
# third with a ggplot2 plot
library(ggplot2)
svgPanZoom( ggplot( data.frame(x=1:10,y=1:10), aes(x=x,y=y) ) + geom_line() )
#Of course as a good htmlwidget should, it works with Shiny also.
library(shiny)
library(svglite)
library(svgPanZoom)
library(ggplot2)
ui <- shinyUI(bootstrapPage(
svgPanZoomOutput(outputId = "main_plot")
))
server = shinyServer(function(input, output) {
output$main_plot <- renderSvgPanZoom({
p <- ggplot() +
geom_point(
data=data.frame(faithful),aes(x=eruptions,y=waiting)
) +
stat_density2d(
data=data.frame(faithful)
,aes(x=eruptions,y=waiting ,alpha =..level..)
,geom="polygon") +
scale_alpha_continuous(range=c(0.05,0.2))
svgPanZoom(p, controlIconsEnabled = T)
})
})
runApp(list(ui=ui,server=server))
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.