85

My python code creates a plotly bar plot, but the background is white in color. I want to change it into transparent color. Is that doable?

My Code:

import plotly.plotly as py
from plotly.graph_objs import *
py.sign_in('username', 'api_key')
data = Data([
Bar(
    x=['Sivaranjani S', 'Vijayalakshmi C', 'Rajeshwari S', 'Shanthi Priscilla', 'Pandiyaraj G', 'Kamatchi S', 'MohanaPriya', 'Madhumitha G', 'Franklin Alphones Raj J', 'Akfaris Almaas', 'Biswajit Champati', 'Priya R', 'Rekha Rajasekaran', 'Sarath Kumar B', 'Jegan L', 'Karthick A', 'Mahalakshmi S', 'Ragunathan V', 'Anu S', 'Ramkumar KS', 'Uthra R'],
    y=[1640, 1394, 1390, 1313, 2166, 1521, 1078, 1543, 780, 1202, 1505, 2028, 2032, 1769, 1238, 1491, 1477, 1329, 2038, 1339, 1458],
    text=['Scuti', 'Scuti', 'Cygni', 'Scorpii', 'Scuti', 'Pollux', 'Scorpii', 'Pollux', 'Scuti', 'Pollux', 'Scorpii', 'Scorpii', 'Scuti', 'Cygni', 'Scorpii', 'Scuti', 'Scuti', 'Pollux', 'Scuti', 'Pollux', 'Pollux'])])
plot_url = py.plot(data)

The graph looks like this:

enter image description here

bathyscapher
  • 1,615
  • 1
  • 13
  • 18
The6thSense
  • 8,103
  • 8
  • 31
  • 65

2 Answers2

163

For a fully transparent plot, make sure to specify both the paper bgcolor and the plot's:

import plotly.plotly as py
from plotly.graph_objs import *
py.sign_in('', '')
data = Data([
    Bar(
        x=['Sivaranjani S', 'Vijayalakshmi C', 'Rajeshwari S', 'Shanthi Priscilla', 'Pandiyaraj G', 'Kamatchi S', 'MohanaPriya', 'Madhumitha G', 'Franklin Alphones Raj J', 'Akfaris Almaas', 'Biswajit Champati', 'Priya R', 'Rekha Rajasekaran', 'Sarath Kumar B', 'Jegan L', 'Karthick A', 'Mahalakshmi S', 'Ragunathan V', 'Anu S', 'Ramkumar KS', 'Uthra R'],
        y=[1640, 1394, 1390, 1313, 2166, 1521, 1078, 1543, 780, 1202, 1505, 2028, 2032, 1769, 1238, 1491, 1477, 1329, 2038, 1339, 1458],
        text=['Scuti', 'Scuti', 'Cygni', 'Scorpii', 'Scuti', 'Pollux', 'Scorpii', 'Pollux', 'Scuti', 'Pollux', 'Scorpii', 'Scorpii', 'Scuti', 'Cygni', 'Scorpii', 'Scuti', 'Scuti', 'Pollux', 'Scuti', 'Pollux', 'Pollux']
    )
])

layout = Layout(
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)'
)

fig = Figure(data=data, layout=layout)

plot_url = py.plot(fig, filename='transparent-background')
etpinard
  • 4,756
  • 1
  • 20
  • 26
  • 4
    Thanks! For those who want more options, here is the official documentation: https://plot.ly/python/reference/#layout – jeffsama Nov 20 '18 at 03:57
  • 1
    Nice, actually it is the opacity parameter(equal to 0) in rgba that makes the background transparent. – M. Mufti Jan 29 '22 at 09:55
  • 4
    You could also: ```fig.update_layout(height=300, paper_bgcolor="rgba(0,0,0,0)", plot_bgcolor="rgba(0,0,0,0)")``` – rezan21 Jul 08 '22 at 18:53
  • I'd recommend also adding `modebar = dict(bgcolor='rgba(0, 0, 0, 0)')` to make the modebar render nicely too. – MarcinKonowalczyk Oct 27 '22 at 16:19
14

You can use the a Layout to change its colours with the parameters bgcolour and opacity set to yours desires. You could do something like:

data = Data([Bar(... The same you already have...)])

layout = Layout(
    title='Your Title',
    (xaxis, yaxis, WHAT EVER YOU WANT TO SET)

    paper_bgcolor='rgb(233,233,233)', # set the background colour

)
fig = Figure(data=data, layout=layout)
py.plot(fig)

you can find some examples here

Ricardo Burillo
  • 1,246
  • 11
  • 14