Skip to content

clugen/pyclugen

Repository files navigation

Tests codecov docs PyPI PyPI - Downloads MIT

pyclugen

pyclugen is a Python implementation of the clugen algorithm for generating multidimensional clusters with arbitrary distributions. Each cluster is supported by a line segment, the position, orientation and length of which guide where the respective points are placed.

See the documentation and examples for more details.

Installation

Install from PyPI:

pip install --upgrade pip
pip install pyclugen

Or directly from GitHub:

pip install --upgrade pip
pip install git+https://github.com/clugen/pyclugen.git#egg=pyclugen

Quick start

from pyclugen import clugen
import matplotlib.pyplot as plt
out2 = clugen(2, 4, 400, [1, 0], 0.4, [50, 10], 20, 1, 2)
plt.scatter(out2.points[:, 0], out2.points[:, 1], c=out2.clusters)
plt.show()

2D example.

out3 = clugen(3, 5, 10000, [0.5, 0.5, 0.5], 0.2, [10, 10, 10], 10, 1, 2)
fig = plt.figure()
ax = fig.add_subplot(projection="3d")
ax.scatter(out3.points[:, 0], out3.points[:, 1], out3.points[:, 2], c=out3.clusters)
plt.show()

3D example.

See also

  • CluGen.jl, a Julia implementation of the clugen algorithm.
  • clugenr, an R implementation of the clugen algorithm.
  • MOCluGen, a MATLAB/Octave implementation of the clugen algorithm.

Reference

If you use this software, please cite the following reference:

License

MIT License