Embedding Logos in Plotly Graphs in R

How to embed logos and images into Plotly charts.


Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.

Embed Logos on a Graph

library(plotly)

fig <- plot_ly(x = c(1, 2, 3), y = c(1, 2, 3))
fig <- fig %>% add_lines() 
fig <- fig %>%
  layout(
    images = list(
      list(source = "https://images.plot.ly/language-icons/api-home/python-logo.png",
           xref = "paper",
           yref = "paper",
           x= 0,
           y= 1,
           sizex = 0.2,
           sizey = 0.2,
           opacity = 0.8
      ),

      list(source = "https://images.plot.ly/language-icons/api-home/matlab-logo.png",
           xref = "x",
           yref = "paper",
           x = 2.7,
           y = 0.25,
           sizex = 0.4,
           sizey = 0.8,
           opacity = 0.8
      ),

      list(source =  "https://images.plot.ly/language-icons/api-home/r-logo.png",
           xref = "x",
           yref = "y",
           x = 0.9,
           y = 3.1,
           sizex = 2,
           sizey = 2,
           sizing = "stretch",
           opacity = 0.4,
           layer = "below"
      )
    )
  )

fig

What About Dash?

Dash for R is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.

Learn about how to install Dash for R at https://dashr.plot.ly/installation.

Everywhere in this page that you see fig, you can display the same figure in a Dash for R application by passing it to the figure argument of the Graph component from the built-in dashCoreComponents package like this:

library(plotly)

fig <- plot_ly() 
# fig <- fig %>% add_trace( ... )
# fig <- fig %>% layout( ... ) 

library(dash)
library(dashCoreComponents)
library(dashHtmlComponents)

app <- Dash$new()
app$layout(
    htmlDiv(
        list(
            dccGraph(figure=fig) 
        )
     )
)

app$run_server(debug=TRUE, dev_tools_hot_reload=FALSE)