File: plot_density2d.py

package info (click to toggle)
vedo 2025.5.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,404 kB
  • sloc: python: 64,792; javascript: 1,932; xml: 437; sh: 139; makefile: 6
file content (25 lines) | stat: -rw-r--r-- 811 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Density plot from a distribution of points in 2D"""
import numpy as np
from vedo import *

settings.use_depth_peeling = True

n = 10000
p = np.random.normal(0, 0.3, (n,2))
p[:int(n*1/3) ] += [1.0, 0.0] # shift 1/3 of the points along x by 1
p[ int(n*2/3):] += [1.7, 0.4]

# create the point cloud
pts = Points(p).color('k', 0.2)

# radius of local search can be specified (None=automatic)
vol = pts.density(radius=None).cmap('Paired_r') # returns a Volume

# Other cool color mapping: Set1_r, Dark2. Or you can build your own, e.g.:
# vol.c(['w','w','y','y','r','r','g','g','b','k']).alpha([0,1])

r = precision(vol.metadata['radius'], 2) # retrieve automatic radius value
vol.add_scalarbar3d(title='Density (counts in r_search ='+r+')', c='k', italic=1)

show([(pts,__doc__), vol], N=2, axes=True).close()