Skip to content

Signal auto downsampling is not applied as configured: hidden 5x threshold, settings changes ignored for unselected signals #455

Closed

Description

@PierreRaybaut

Symptoms

Signal auto downsampling (Settings > Visualization > Signals, enabled by default with a maximum of 100,000 points) does not behave as configured:

  1. Signals between 100,000 and 500,000 points are drawn in full. Downsampling only starts above 5 times the configured maximum number of points, which is not documented anywhere.
  2. Changing Use auto downsampling or Downsampling max points (or the line width settings) only updates the curves of the selected signals. The other curves keep the previous setting, even after they are selected again.
  3. The documentation and the settings dialog give 10,000 as the default maximum number of points, whereas the actual default value is 100,000.

Measured in DataLab (number of points drawn, CurveItem.dataSize()):

Step 150k pts 300k pts 600k pts 2M pts
Creation (max 100,000) 150,000 300,000 100,000 100,000
Max set to 10,000 (2M signal selected) 150,000 300,000 100,000 10,000
Then each signal selected 150,000 300,000 100,000 10,000

Root causes

  • apply_downsampling (SigimaX) only downsamples when nbpoints > 5 * maxpoints, and its factor nbpoints // maxpoints may draw more than maxpoints points (599,999 points are drawn as 120,000 points).
  • Since v1.0.0 (a9b540f), a change of the sig_autodownsampling* and sig_linewidth* settings calls manual_refresh(), which only refreshes the selected objects. Before, all existing plot items were updated. A later selection change does not update the items either (update_items=False).
  • datalab/gui/settings.py and doc/features/common/settings.rst still give 10,000 as the default value.

Proposed changes

  • SigimaX: downsample as soon as a signal has more points than the configured maximum, with a factor such that at most this number of points is drawn.
  • DataLab: apply signal display settings changes to all existing curves, not only to the selected ones.
  • DataLab: show and document the actual default value (100,000), and state that downsampling only affects the display (data and processing are unchanged).

Related issue: DataLab-Platform/SigimaX#30 (downsampling threshold).

Follow-up: PlotPyStack/PlotPy#85 (min/max downsampling, preserving peaks).

Activity

  1. PierreRaybaut commented on Oct 29, 2026

    @PierreRaybaut
    ContributorAuthor

    Fixed by #456 (merged into develop, will be released in DataLab 1.4.0), with DataLab-Platform/SigimaX#31. Follow-up: PlotPyStack/PlotPy#85 (min/max downsampling).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions