kdboller / pythonsp500-plotly-dash

Repository with all files and data needed for Dash by Plotly post.
61 stars 45 forks source link

ValueError: Invalid value of type 'builtins.str' received for the 'x' property of layout #1

Open Ajinkz opened 5 years ago

Ajinkz commented 5 years ago

Traceback (most recent call last): File "Mock_Portfolio_Dash.py", line 140, in legend = {'x':'0.75', 'y':'1.2'} File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\graph_objs__init.py" , line 5342, in init self['legend'] = legend if legend is not None else _v File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\basedatatypes.py", line 4225, in setitem super(BaseLayoutHierarchyType, self).setitem(prop, value) File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\basedatatypes.py", line 3308, in setitem self._set_compound_prop(prop, value) File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\basedatatypes.py", line 3621, in _set_compound_prop val = validator.validate_coerce(val, skip_invalid=self._skip_invalid) File "D:\Anaconda3\envs\stats\lib\site-packages_plotly_utils\basevalidators.p y", line 2131, in validate_coerce v = self.data_class(v, skip_invalid=skip_invalid) File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\graph_objs\layout__ini t.py", line 16324, in init__ self['x'] = x if x is not None else _v File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\basedatatypes.py", line 3317, in setitem__ self._set_prop(prop, value) File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\basedatatypes.py", line 3562, in _set_prop raise err File "D:\Anaconda3\envs\stats\lib\site-packages\plotly\basedatatypes.py", line 3557, in _set_prop val = validator.validate_coerce(val) File "D:\Anaconda3\envs\stats\lib\site-packages_plotly_utils\basevalidators.p y", line 737, in validate_coerce self.raise_invalid_val(v) File "D:\Anaconda3\envs\stats\lib\site-packages_plotly_utils\basevalidators.p y", line 277, in raise_invalid_val valid_clr_desc=self.description())) ValueError: Invalid value of type 'builtins.str' received for the 'x' property of layout .legend Received value: '0.75'

The 'x' property is a number and may be specified as:
  - An int or float in the interval [-2, 3]
fe01134 commented 4 years ago

I hit the same thing in a medium blog tutorial. If you convert your json or python dictionaries input for fields from strings: legend = {'x':'0.8', 'y':'1.2'} to integers or floats: legend = {'x':0.8, 'y':1.2}

it then works.