local({r <- getOption("repos")  # You'll want to select the CRAN mirror you like.
       r["CRAN"] <- "http://cran.r-project.org" 
       options(repos=r)
})

install.packages("devtools") # windows users install Rtools
library("devtools")
install_github("ropensci/plotly")  # Plotly is part of the super cool rOpenSci
 
library(plotly)  # install libraries we’ll be using
library(ggplot2)
library(reshape)
 
py <- plotly("ggplot2examples", "3gazttckd7")  # initiate plot object
 
library(WDI) # now we’ll make the plot from the blog post
library(ggplot2)
 
dat = WDI(indicator='NY.GNP.PCAP.CD', country=c('CL','HU','UY'), start=1960, end=2012) # Grab GNI per 
#  capita data for Chile, Hungary and Uruguay
 
wb <- ggplot(dat, aes(year, NY.GNP.PCAP.CD, color=country)) + geom_line() 
+     xlab('Year') + ylab('GDI per capita (Atlas Method USD)') 
+     labs(title <- "GNI Per Capita ($USD Atlas Method)")
 
py$ggplotly(wb)  # call Plotly

library(IRdisplay)
plotly_iframe <- function(url) {
    # set width and height from options or default square
    w <- "750"
    h <- "600"
    html <- paste("<center><iframe height=\"", h, "\" id=\"igraph\" scrolling=\"no\" seamless=\"seamless\"\n\t\t\t\tsrc=\"", 
        url, "\" width=\"", w, "\" frameBorder=\"0\"></iframe></center>", sep="")
    return(html)
}

display_html(plotly_iframe("https://plot.ly/~ggplot2examples/98"))

display_html(plotly_iframe("https://plot.ly/~MattSundquist/1339"))

str(dat) # Once published, you can list all objects and their attributes

py <- plotly("ggplot2examples", "3gazttckd7")  # Or you can use Plotly to call any figure
figure <- py$get_figure("MattSundquist", 1339)
str(figure)

figure$data[]  # or call the data so you can analyze it or bring data from any plot into your R environment 

p <- ggplot(diamonds, aes(x=carat, y=price))
p <- p + geom_point(aes(colour=clarity)) + facet_grid(cut ~ color, margins=TRUE)
py$ggplotly(p)

display_html(plotly_iframe("https://plot.ly/~MattSundquist/1630"))  # edited in GUI

require(reshape2)
require(plyr)
require(spdep)
require(igraph)
require(ggplot2)
require(RColorBrewer)

wealth.dist <- structure(
  list(
    CA = c(0.054, 0.442, 0.349, 0.155),  # 2005, family
    FR = c(0.040, 0.440, 0.278, 0.242),  # 2010, adult
    IE = c(0.050, 0.390, 0.330, 0.230),  # 2001, household
    IT = c(0.115, 0.462, 0.301, 0.122),  # 2008, household
    GB = c(0.092, 0.465, 0.318, 0.125),  # 2008, household
    US = c(0.025, 0.265, 0.372, 0.338),  # 2007, family
    BE = c(0.135, 0.373, 0.300, 0.197)), # 1994, family   
  .Names = c("CA", "FR", "IE", "IT", "GB", "US", "BE"), 
  row.names = c("Bottom 50%", "Mid 40%", "Top 9%", "Elite 1%"), 
  class = "data.frame")

wealth.dist <- wealth.dist[,order(wealth.dist[4,])] # order by share 1%

t(wealth.dist*100) # print table

wealth.dist$EQ <- c(0.5, 0.4, 0.09, 0.01)  # add perfectly equal country

# restack data (one rown per combination)
d <- melt(t(wealth.dist))
names(d) <- c("country", "group", "value")
d$group <- factor(d$group, levels = row.names(wealth.dist))
d$country <- factor(d$country, levels = names(wealth.dist))

# plot distributions in stacked barchart
q <- ggplot(d, aes(country, value * 100, fill = group)) + 
    geom_bar(stat = "identity")
q <- q + scale_fill_brewer(
    palette = "RdYlBu", 
    guide = guide_legend(reverse = TRUE, title = "Groups"))
q <- q + opts(title = "National wealth ownership")
q + scale_x_discrete(name = "Country") + 
    scale_y_continuous(name = "Percentage of wealth owned")
py$ggplotly()

display_html(plotly_iframe("https://plot.ly/~ggplot2examples/220"))

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
d <- qplot(carat, price, data=dsamp, colour=clarity)
py$ggplotly()

display_html(plotly_iframe("https://plot.ly/~ggplot2examples/42"))

display_html(plotly_iframe("https://plot.ly/~MattSundquist/1511"))  # then hide a few series and add a pair of fits. 

# CSS styling within IPython notebook
display_html(getURL("https://raw.githubusercontent.com/plotly/python-user-guide/master/custom.css"))