scatter_simplify_ma​tlab

버전 1.1 (451 KB) 작성자: Thomas Guillod
MATLAB Code for Simplifying Scatter Plots
다운로드 수: 64
업데이트 날짜: 2021/11/4

MATLAB Code for Simplifying Scatter Plots

license - BSD language - MATLAB category - science status - maintained

MATLAB scatter plots with millions of points are slow and resource intensive. However, most of the points are not visible since they are hidden by other points. This code detects which points are hidden and remove them.

The used algorithm is particularly efficient and can handle millions of points:

  • a pixel matrix is generated
  • the points are circle occupying a given number of pixels
  • the indices of the points are placed (in order) in the pixel matrix
  • the points that do not appear in the pixel matrix will be invisible in the plot
  • the invisible points are removed

In other words, this algorithm work as a virtual graphic buffer. The plot is precomputed and invisible elements are deleted.

This algorithm (o(n) complexity) features several advantages:

  • no need to compute the distance between all the points
  • the memory requirement is linearly proportional to the number of pixels
  • the memory requirement is linearly proportional to the number of scatter points
  • computational cost is linearly proportional to the number of scatter points

This code has been successfully tested with large datasets:

  • this algorithm is vectorized and many points are treated together.
  • the number of points (chunk size) processed in a step can be selected.
  • 100'000'000 points can be simplified in several minutes

Example

Look at the examples run_example.m. A dataset with random points is successfully simplified (by a factor of 40) without changing the scatter plot result.

Compatibility

  • Tested with MATLAB R2018b.
  • No toolboxes are required.
  • Compatibility with GNU Octave not tested but probably easy to achieve.

Author

Thomas Guillod - GitHub Profile

License

This project is licensed under the BSD License, see LICENSE.md.

인용 양식

Thomas Guillod (2024). scatter_simplify_matlab (https://github.com/otvam/scatter_simplify_matlab), GitHub. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R2018b
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

GitHub 디폴트 브랜치를 사용하는 버전은 다운로드할 수 없음

버전 게시됨 릴리스 정보
1.1

connect readme

1.0.3

new image

1.0.2

typo

1.0.1

Complexity is o(n) and not o(1)

1.0.0

이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.
이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.