Iβve been using a Plot.ly example for FFT and Filters.
https://plot.ly/python/fft-filters/
Two errors consistently pop up in the sample code:
IndexError Traceback (most recent call last)
<ipython-input-46-bd63162e75b1> in <module>()
16 hhpf = hhpf / np.sum(hhpf)
17 hhpf = -hhpf
---> 18 hhpf[(N - 1) / 2] += 1
19
20 h = np.convolve(hlpf, hhpf)
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
This is fixed if I modify the code with the error to:
---> 18 hhpf[int((N - 1) / 2)] += 1
The second error is:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-50-adc0392cb73a> in <module>()
39 trace_data = [trace1]
40 fig = go.Figure(data=trace_data, layout=layout)
---> 41 py.iplot(fig, filename='fft-band-pass-filter')
~/anaconda3/lib/python3.6/site-packages/plotly/plotly/plotly.py in iplot(figure_or_data, **plot_options)
138 if 'auto_open' not in plot_options:
139 plot_options['auto_open'] = False
--> 140 url = plot(figure_or_data, **plot_options)
141
142 if isinstance(figure_or_data, dict):
~/anaconda3/lib/python3.6/site-packages/plotly/plotly/plotly.py in plot(figure_or_data, validate,
**plot_options)
231 data = fig.get('data', [])
232 plot_options['layout'] = fig.get('layout', {})
--> 233 response = v1.clientresp(data, **plot_options)
234
235 # Check if the url needs a secret key
~/anaconda3/lib/python3.6/site-packages/plotly/api/v1/clientresp.py in clientresp(data, **kwargs)
27 payload = {
28 'platform': 'python', 'version': version.__version__,
---> 29 'args': _json.dumps(data, **dumps_kwargs),
30 'un': creds['username'], 'key': creds['api_key'], 'origin': 'plot',
31 'kwargs': _json.dumps(kwargs, **dumps_kwargs)
~/anaconda3/lib/python3.6/json/__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular,
allow_nan, cls, indent, separators, default, sort_keys, **kw)
236 check_circular=check_circular, allow_nan=allow_nan, indent=indent,
237 separators=separators, default=default, sort_keys=sort_keys,
--> 238 **kw).encode(obj)
239
240
~/anaconda3/lib/python3.6/site-packages/plotly/utils.py in encode(self, o)
134
135 # this will raise errors in a normal-expected way
--> 136 encoded_o = super(PlotlyJSONEncoder, self).encode(o)
137
138 # now:
~/anaconda3/lib/python3.6/json/encoder.py in encode(self, o)
197 # exceptions aren't as detailed. The list call should be roughly
198 # equivalent to the PySequence_Fast that ''.join() would do.
--> 199 chunks = self.iterencode(o, _one_shot=True)
200 if not isinstance(chunks, (list, tuple)):
201 chunks = list(chunks)
~/anaconda3/lib/python3.6/json/encoder.py in iterencode(self, o, _one_shot)
255 self.key_separator, self.item_separator, self.sort_keys,
256 self.skipkeys, _one_shot)
--> 257 return _iterencode(o, 0)
258
259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
~/anaconda3/lib/python3.6/site-packages/plotly/utils.py in default(self, obj)
202 except NotEncodable:
203 pass
--> 204 return _json.JSONEncoder.default(self, obj)
205
206 @staticmethod
~/anaconda3/lib/python3.6/json/encoder.py in default(self, o)
178 """
179 raise TypeError("Object of type '%s' is not JSON serializable" %
--> 180 o.__class__.__name__)
181
182 def encode(self, o):
TypeError: Object of type 'range' is not JSON serializable
This error is fixed if I add a list() around the x data:
x=list(range(len(new_signal))),
My question is has something changed in Plot.ly that this code no longer works. What am I doing wrong when I canβt get it to run as it is published.