Loading...
 

Plot.ly Charts using PluginR and Tiki

Derived from http://www.r-statistics.com/2013/12/plotly-beta-collaborative-plotting-with-r/
See

The Plotly R graphing library allows you to create and share interactive, publication-quality plots in your browser. Plotly is also built for working together, and makes it easy to post graphs and data publicly with a URL or privately to collaborators.

Page contents


Installing Plotly

{RR(echo="0", cacheby="pagename", wikisyntax="0")}
# Installing Plotly
# -----------------------

# Install de required packages if you don't have them yet
if(!require(devtools)){ install.packages("devtools", repos="http://ftp.heanet.ie/mirrors/cran.r-project.org/") }
require("devtools")
if(!require(RCurl)){ install.packages("RCurl", repos="http://ftp.heanet.ie/mirrors/cran.r-project.org/") }
if(!require(bitops)){ install.packages("bitops", repos="http://ftp.heanet.ie/mirrors/cran.r-project.org/") }
if(!require(RJSONIO)){ install.packages("RJSONIO", repos="http://ftp.heanet.ie/mirrors/cran.r-project.org/") }

# Next, install plotly (a big thanks to Hadley, who suggested the GitHub route):

if(!require(plotly)){ devtools::install_github("plotly/R-api") }

# ...
# * DONE (plotly)

# Then sign-up like this (adapt username and email to your choice) or at https://plot.ly/:
require(plotly)
response = signup (username = 'yournewusername', email= 'youremail@example.com')

# You'll get as output in the R console:
#
## Thanks for signing up to plotly!
##
##   Your username is: yournewusername
##
## Your temporary password is: yourtemppassword. You use this to log into your plotly account at https://plot.ly/plot.
##
## Your API key is: API_Key. You use this to access your plotly account through the API.
##
## To get started, initialize a plotly object with your username and api_key, e.g.
## >>> p <- plotly(username="yournewusername", key="API_Key")
## Then, make a graph!
##   >>> res <- p$plotly(c(1,2,3), c(4,2,1))

# And we’re up and running! You can change and access your password and key in your homepage.
{RR}


Overlaid Histograms

{RR(echo="0", cacheby="pagename", wikisyntax="0")}
# 1. Overlaid Histograms:
# ------------------------
require(plotly)
p <- plotly(username="yournewusername", key="API_Key")

x0 = rnorm(500)
x1 = rnorm(500)+1
data0 = list(x=x0,
             type='histogramx',
             opacity=0.8)
data1 = list(x=x1,
             type='histogramx',
             opacity=0.8)
layout = list(barmode='overlay')

response = p$plotly(data0, data1, kwargs=list(layout=layout))

# The script makes a graph. Use the RStudio viewer or add “browseURL(response$url)” to your script
# to avoid copy and paste routines of your URL and open the graph directly.

#browseURL(response$url)

# In Tiki, you can plot the graph in a wiki page by means of an iframe to the reponse$url
#
#cat(response$url)
#
# But since Tiki doesn't allow the word "url" in scripts, we will use the index of the value in the response list: cat(unlist(response[1]))
cat(unlist(response[1]) )
# This will produce something like:
#
#"https://plot.ly/~yournewusername/0/"
#
# Then you just need to include that url in an iframe as usual in Tiki
{RR}

{iframe name=myPlotlyChart width=800 height=600 align=middle frameborder=0 marginheight=0 marginwidth=0 scrolling=auto src="https://plot.ly/~yournewusername/0/"}




Log-normal Boxplot

{RR(echo="1", cacheby="pagename", wikisyntax="0")}
# 2. Log-normal Boxplot
# ------------------------
require(plotly)
p <- plotly(username='USERNAME', key='API_KEY')

x <- c(seq(0,0,length=1000),seq(1,1,length=1000),seq(2,2,length=1000))
y <- c(rlnorm(1000,0,1),rlnorm(1000,0,2),rlnorm(1000,0,3))
s <- list(
  type = 'box',
  jitter = 0.5
)
layout <- list(
  title = 'Fun with the Lognormal distribution',
  yaxis = list(
    type = 'log'
  )
)

response <- p$plotly(x,y, kwargs = list(layout = layout, style=s))

#browseURL(response$url)
# Again, in Tiki, you can plot the graph in a wiki page by means of an iframe to the reponse$url  =  unlist(response[1])
{RR}

{iframe name=myPlotlyChart width=800 height=600 align=middle frameborder=0 marginheight=0 marginwidth=0 scrolling=auto src="https://plot.ly/~ueb/14/"}




HeatMaps

{RR(echo="0", cacheby="pagename", wikisyntax="0")}
####################################
# Days of the Week Heatmap Demo
# Questions? Email feedback@plot.ly
# For more docs, see plot.ly/api
####################################
require(RColorBrewer)
require(plotly)

py <- plotly(username='yournewusername', key='API_Key')


x <- c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
y <- c('Morning', 'Afternoon', 'Evening')
z <- list(
			c(1., 20., 30, 50, 1),
     		c(20., 1., 60, 80, 30),
     		c(30., 60., 1., -10, 20)
     	)

# Color brewer YIOrBr colorscale http://colorbrewer2.org
# scl=[[0,"rgb(128, 0, 38)"],[0.125,"rgb(189, 0, 38)"],[0.25,"rgb(227, 26, 28)"],
# 	[0.375,"rgb(252, 78, 42)"],[0.5,"rgb(253, 141, 60)"],[0.625,"rgb(254, 178, 76)"],
# 	[0.75,"rgb(254, 217, 118)"],[0.875,"rgb(255, 237, 160)"],[1,"rgb(255, 255, 204)"]]

scl <- brewer.pal(9,'YlOrBr')
data <- list(
				x = x,
				y = y,
				z = z,
				scl= list(
							c(0,"rgb(128, 0, 38)"),
							c(0.125,"rgb(189, 0, 38)"),
							c(0.25,"rgb(227, 26, 28)"),
							c(0.375,"rgb(252, 78, 42)"),
							c(0.5,"rgb(253, 141, 60)"),
							c(0.625,"rgb(254, 178, 76)"),
							c(0.75,"rgb(254, 217, 118)"),
							c(0.875,"rgb(255, 237, 160)"),
							c(1,"rgb(255, 255, 204)")
						),
				type = 'heatmap'
			)

response <- py$plotly(data)

# url and filename
#unlist(response[1])
#filename <- response$filename

{RR}
{iframe name=myPlotlyChart width=800 height=600 align=middle frameborder=0 marginheight=0 marginwidth=0 scrolling=auto src="https://plot.ly/~ueb/15/"}




More types of charts...

For more examples of chart types possible with Plot.ly and R, see:

Collaborating and Sharing

# Collaborating and Sharing: You’re in Control
# ---------------------------------------------
#
# Keep in mind that:
#
# (1) You control if graphs are public or private, and who you share with (like Google Docs)
# (2) Public sharing in Plotly is free (like GitHub).
#
# To share privately, press “Share” in our GUI or share with your script.
# Users you share with get an email and can edit and comment on graphs.
# That means no more emailing data, graphs, screenshots, and spreadsheets around: you can do it all in Plotly.
# You can also save and apply custom themes to new data to avoid re-making the same graphs with new data.
# Just upload and apply your theme.