Skip to content

Commit f25cc4e

Browse files
authored
Merge pull request #75 from predict-idlab/add_traces_bug
🐛 return self when calling add_traces
2 parents 002da45 + 0accffa commit f25cc4e

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

plotly_resampler/figure_resampler/figure_resampler_interface.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,11 @@ def add_traces(
994994
.. seealso::
995995
`Figure.add_traces <https://plotly.com/python-api-reference/generated/plotly.graph_objects.Figure.html#plotly.graph_objects.Figure.add_traces>`_ docs.
996996
997+
Returns
998+
-------
999+
BaseFigure
1000+
The Figure on which ``add_traces`` was called on; i.e. self.
1001+
9971002
"""
9981003
# note: Plotly its add_traces also a allows non list-like input e.g. a scatter
9991004
# object; the code below is an exact copy of their internally applied parsing
@@ -1053,7 +1058,7 @@ def add_traces(
10531058
assert trace is not None
10541059
data[i] = trace
10551060

1056-
super(self._figure_class, self).add_traces(data, **traces_kwargs)
1061+
return super(self._figure_class, self).add_traces(data, **traces_kwargs)
10571062

10581063
def _clear_figure(self):
10591064
"""Clear the current figure object it's data and layout."""

tests/test_figure_resampler.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,19 @@ def test_fr_list_scatter_add_traces(float_series):
841841
assert len(fr_fig.data) == 5
842842

843843

844+
def test_fr_add_scatter():
845+
# Checks whether the add_scatter method works as expected
846+
# .add_scatter calls `add_traces` under the hood
847+
f_orig = go.Figure().add_scatter(y=np.arange(2_000))
848+
f_pr = FigureResampler().add_scatter(y=np.arange(2_000))
849+
850+
assert len(f_orig.data) == 1
851+
assert (len(f_pr.data) == 1) & (len(f_pr.hf_data) == 1)
852+
assert len(f_orig.data[0].y) == 2_000
853+
assert len(f_pr.data[0]["y"]) == 1_000
854+
assert np.all(f_orig.data[0].y == f_pr.hf_data[0]["y"])
855+
856+
844857
def test_fr_copy_hf_data(float_series):
845858
fr_fig = FigureResampler(default_n_shown_samples=2000)
846859
traces: List[dict] = [

tests/test_figurewidget_resampler.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,3 +1724,15 @@ def test_fwr_list_scatter_add_traces(float_series):
17241724
fr_fig.add_traces(go.Scatter({'y': float_series[:1000], 'name': "s_agg"}), max_n_samples=999)
17251725
assert len(fr_fig.hf_data) == 4
17261726
assert len(fr_fig.data) == 5
1727+
1728+
def test_fwr_add_scatter():
1729+
# Checks whether the add_scatter method works as expected
1730+
# .add_scatter calls `add_traces` under the hood
1731+
fw_orig = go.FigureWidget().add_scatter(y=np.arange(2_000))
1732+
fw_pr = FigureWidgetResampler().add_scatter(y=np.arange(2_000))
1733+
1734+
assert len(fw_orig.data) == 1
1735+
assert (len(fw_pr.data) == 1) & (len(fw_pr.hf_data) == 1)
1736+
assert len(fw_orig.data[0].y) == 2_000
1737+
assert len(fw_pr.data[0]["y"]) == 1_000
1738+
assert np.all(fw_orig.data[0].y == fw_pr.hf_data[0]["y"])

0 commit comments

Comments
 (0)