Plotly Value error - Invalid property for colour
Asked Answered
B

4

9

I have been experiencing errors while generating charts using Plotly and it seems to be affecting most of the charts I try producing on it. The error also seems to be a duplicate across all the failures. I am using Jupyter notebook (Anaconda 3, Python 3.6).

Code that fails to generate output is found below (but my data table and everything else is correct).

** I am unsure if there's some problem with the Plotly library (I'm using Plotly's latest that I installed using "Pip install Plotly")

import pandas as pd # package for high-performance, easy-to-use data 
structures and data analysis
import numpy as np # fundamental package for scientific computing with Python
import matplotlib
import matplotlib.pyplot as plt # for plotting
import seaborn as sns # for making plots with seaborn
color = sns.color_palette()
import plotly.offline as py
py.init_notebook_mode(connected=True)
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
import plotly.graph_objs as go
import plotly.offline as offline
offline.init_notebook_mode()
from plotly import tools
import plotly.tools as tls
import squarify

from mpl_toolkits.basemap import Basemap
from numpy import array
from matplotlib import cm

# import cufflinks and offline mode
import cufflinks as cf
cf.go_offline()

# from sklearn import preprocessing
# # Supress unnecessary warnings so that presentation looks clean
import warnings
warnings.filterwarnings("ignore")

# # Print all rows and columns
pd.set_option('display.max_columns', None)
# pd.set_option('display.max_rows', None)

*************************************************
temp = application_train["TARGET"].value_counts()
df = pd.DataFrame({'labels': temp.index,
               'values': temp.values
              })
df.iplot(kind='scatter',labels='labels',values='values', title='Loan 
Repayed or not')

ERROR LOG (Below)

ValueError                                Traceback (most recent call last)
<ipython-input-63-2c9a8a530884> in <module>()
  3                    'values': temp.values
  4                   })
----> 5 df.iplot(kind='scatter',labels='labels',values='values', title='Loan 
Repayed or not')

C:\ProgramData\Anaconda3\lib\site-packages\cufflinks\plotlytools.py in 
_iplot(self, data, layout, filename, sharing, kind, title, xTitle, yTitle, 
zTitle, theme, colors, colorscale, fill, width, dash, mode, symbol, size, 
barmode, sortbars, bargap, bargroupgap, bins, histnorm, histfunc, 
orientation, 
boxpoints, annotations, keys, bestfit, bestfit_colors, mean, mean_colors, 
categories, x, y, z, text, gridcolor, zerolinecolor, margin, labels, values, 
secondary_y, secondary_y_title, subplots, shape, error_x, error_y, 
error_type, 
locations, lon, lat, asFrame, asDates, asFigure, asImage, dimensions, asPlot, 
asUrl, online, **kwargs)
698                                                                 
bargap=bargap,bargroupgap=bargroupgap,
annotations=annotations,gridcolor=gridcolor 
,
699                                                            
dimensions=dimensions,
--> 700                                  
zerolinecolor=zerolinecolor,margin=margin,is3d='3d' in kind,**l_kwargs)
701 
702         if not data:

C:\ProgramData\Anaconda3\lib\site-packages\cufflinks\tools.py in 
getLayout(kind, 
theme, title, xTitle, yTitle, zTitle, barmode, bargap, bargroupgap, margin, 
dimensions, width, height, annotations, is3d, **kwargs)
197 
198         theme_data = getTheme(theme)
--> 199         layout=Layout(theme_data['layout'])
200         layout['xaxis1'].update({'title':xTitle})
201         layout['yaxis1'].update({'title':yTitle})

C:\ProgramData\Anaconda3\lib\site-packages\plotly\graph_objs\_layout.py in 
__init__(self, arg, angularaxis, annotations, autosize, bargap, bargroupgap, 
barmode, barnorm, boxgap, boxgroupgap, boxmode, calendar, colorway, 
datarevision, 
direction, dragmode, font, geo, grid, height, hiddenlabels, hiddenlabelssrc, 
hidesources, hoverdistance, hoverlabel, hovermode, images, legend, mapbox, 
margin, orientation, paper_bgcolor, plot_bgcolor, polar, radialaxis, scene, 
selectdirection, separators, shapes, showlegend, sliders, spikedistance, 
template, ternary, title, titlefont, updatemenus, violingap, violingroupgap, 
violinmode, width, xaxis, yaxis, **kwargs)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
__setattr__(self, prop, value)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
__setattr__(self, prop, value)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\graph_objs\_layout.py in 
legend(self, val)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
__setitem__(self, prop, value)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
__setitem__(self, prop, value)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
_set_compound_prop(self, prop, val)

C:\ProgramData\Anaconda3\lib\site-packages\_plotly_utils\basevalidators.py in 
validate_coerce(self, v)

C:\ProgramData\Anaconda3\lib\site- 
packages\plotly\graph_objs\layout\_legend.py in 
__init__(self, arg, bgcolor, bordercolor, borderwidth, font, orientation, 
tracegroupgap, traceorder, x, xanchor, y, yanchor, **kwargs)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
__setattr__(self, prop, value)

C:\ProgramData\Anaconda3\lib\site- 
packages\plotly\graph_objs\layout\_legend.py in 
bgcolor(self, val)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
__setitem__(self, prop, value)

C:\ProgramData\Anaconda3\lib\site-packages\plotly\basedatatypes.py in 
_set_prop(self, prop, val)

C:\ProgramData\Anaconda3\lib\site-packages\_plotly_utils\basevalidators.py in 
validate_coerce(self, v, should_raise)

C:\ProgramData\Anaconda3\lib\site-packages\_plotly_utils\basevalidators.py in 
raise_invalid_val(self, v)

ValueError: 
Invalid value of type 'builtins.str' received for the 'bgcolor' property of 
layout.legend
    Received value: 'pearl02'

The 'bgcolor' property is a color and may be specified as:
  - A hex string (e.g. '#ff0000')
  - An rgb/rgba string (e.g. 'rgb(255,0,0)')
  - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
  - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
  - A named CSS color:
        aliceblue, antiquewhite, aqua, aquamarine, azure,
        beige, bisque, black, blanchedalmond, blue,
        blueviolet, brown, burlywood, cadetblue,
        chartreuse, chocolate, coral, cornflowerblue,
        cornsilk, crimson, cyan, darkblue, darkcyan,
        darkgoldenrod, darkgray, darkgrey, darkgreen,
        darkkhaki, darkmagenta, darkolivegreen, darkorange,
        darkorchid, darkred, darksalmon, darkseagreen,
        darkslateblue, darkslategray, darkslategrey,
        darkturquoise, darkviolet, deeppink, deepskyblue,
        dimgray, dimgrey, dodgerblue, firebrick,
        floralwhite, forestgreen, fuchsia, gainsboro,
        ghostwhite, gold, goldenrod, gray, grey, green,
        greenyellow, honeydew, hotpink, indianred, indigo,
        ivory, khaki, lavender, lavenderblush, lawngreen,
        lemonchiffon, lightblue, lightcoral, lightcyan,
        lightgoldenrodyellow, lightgray, lightgrey,
        lightgreen, lightpink, lightsalmon, lightseagreen,
        lightskyblue, lightslategray, lightslategrey,
        lightsteelblue, lightyellow, lime, limegreen,
        linen, magenta, maroon, mediumaquamarine,
        mediumblue, mediumorchid, mediumpurple,
        mediumseagreen, mediumslateblue, mediumspringgreen,
        mediumturquoise, mediumvioletred, midnightblue,
        mintcream, mistyrose, moccasin, navajowhite, navy,
        oldlace, olive, olivedrab, orange, orangered,
        orchid, palegoldenrod, palegreen, paleturquoise,
        palevioletred, papayawhip, peachpuff, peru, pink,
        plum, powderblue, purple, red, rosybrown,
        royalblue, saddlebrown, salmon, sandybrown,
        seagreen, seashell, sienna, silver, skyblue,
        slateblue, slategray, slategrey, snow, springgreen,
        steelblue, tan, teal, thistle, tomato, turquoise,
        violet, wheat, white, whitesmoke, yellow,
        yellowgreen
Byronbyrum answered 5/8, 2018 at 3:30 Comment(0)
S
13

Update:

After further looking into the issue, the problem is with the cufflinks internal files. Cufflinks is having compatibility issues with the plotly latest version, which is dicussed in this Github Issue, You could try either downgrading to `plotly 2.7' using the below commands. So that these errors can be eliminated.

pip uninstall plotly
pip install plotly==2.7.0

As you can see in the logs, please refer the below line, which tells us the actual problem.

--> 199 layout=Layout(theme_data['layout'])

The error thrown for that lines is.

ValueError: 
Invalid value of type 'builtins.str' received for the 'bgcolor' property of 
layout.legend
    Received value: 'pearl02'

The 'bgcolor' property is a color and may be specified as:
  - A hex string (e.g. '#ff0000')
  - An rgb/rgba string (e.g. 'rgb(255,0,0)')
  - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
  - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
  - A named CSS color:
        aliceblue, antiquewhite, aqua, aquamarine, azure...

So you need to change the layout object's bgcolor property to something other than pearl02, which seems to be the issue, You could change the layout object property as.

layout = {
    'bgcolor': '#ffffff'
}

Please use the below reference link to know about the different ways of setting color values.

  1. Web Colors
Strati answered 6/8, 2018 at 3:45 Comment(1)
Could you please specify in what file I can update the layout = {'bgcolor' : '#ffffff'}?Tallis
F
1

As of June 2019 this will get you up and running. Install cufflinks 0.13.0 with...

conda install -c conda-forge cufflinks-py

then install/downgrade plotly to 2.7.0 with ...

conda install plotly=2.7.0

Cufflinks guys have been working on the fix for sometime, but it's yet to emerge. Big job apparently.

Furunculosis answered 15/6, 2019 at 11:16 Comment(1)
I tried the Plotly Version 4 migration guide (plot.ly/python/v4-migration), but ran into a host of other issues. This solution, whilst it is not ideal in terms of downgrading, does work for me. Thank you.Ferland
A
0

After R&D found this solution

Just search cufflinks folder in your C Drive. You will get .config file in the folder. Open the file in notepad. Change the theme to "solar" ("theme": "solar")

Error will be resolved

Angelineangelique answered 22/11, 2018 at 5:20 Comment(1)
I'm not able to find a .config file in my cufflinks folderTurnover
A
0

for rgba, the issue is to do with the a not being typesafe.

I rolled a little fix on a fork of cufflinks here:

https://github.com/santosjorge/cufflinks/pull/288

which can be installed directly per the description in the PR

Acidophil answered 4/7 at 21:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.