3D Horse DataΒΆ
This example generates a Mapper built from a point-cloud sampled from a 3D model of a horse.
Visualization of the horse data
[1]:
import matplotlib.pyplot as plt
import numpy as np
import sklearn
import kmapper as km
from pathlib import Path
if Path("data/horse-reference.csv").exists():
horse_path = "data/horse-reference.csv"
elif Path("horse-reference.csv").exists():
horse_path = "horse-reference.csv"
else:
raise FileNotFoundError
data = np.genfromtxt(horse_path, delimiter=",")
mapper = km.KeplerMapper(verbose=2)
lens = mapper.fit_transform(data)
graph = mapper.map(
lens,
data,
clusterer=sklearn.cluster.DBSCAN(eps=0.1, min_samples=5),
cover=km.Cover(30, 0.2),
)
if Path("output/").is_dir():
prepend = "output/"
else:
prepend = "./"
mapper.visualize(
graph, path_html=prepend + "horse.html", custom_tooltips=np.arange(len(lens))
)
km.drawing.draw_matplotlib(graph)
plt.show()
KeplerMapper(verbose=2)
..Composing projection pipeline of length 1:
Projections: sum
Distance matrices: False
Scalers: MinMaxScaler()
..Projecting on data shaped (8431, 3)
..Projecting data using: sum
..Scaling with: MinMaxScaler()
Mapping on data shaped (8431, 3) using lens shaped (8431, 1)
Minimal points in hypercube before clustering: 5
Creating 30 hypercubes.
> Found 1 clusters in hypercube 0.
> Found 2 clusters in hypercube 1.
> Found 3 clusters in hypercube 2.
> Found 3 clusters in hypercube 3.
> Found 3 clusters in hypercube 4.
> Found 3 clusters in hypercube 5.
> Found 3 clusters in hypercube 6.
> Found 1 clusters in hypercube 7.
> Found 2 clusters in hypercube 8.
> Found 2 clusters in hypercube 9.
> Found 2 clusters in hypercube 10.
> Found 3 clusters in hypercube 11.
> Found 2 clusters in hypercube 12.
> Found 2 clusters in hypercube 13.
> Found 1 clusters in hypercube 14.
> Found 1 clusters in hypercube 15.
> Found 1 clusters in hypercube 16.
> Found 1 clusters in hypercube 17.
> Found 1 clusters in hypercube 18.
> Found 1 clusters in hypercube 19.
> Found 1 clusters in hypercube 20.
> Found 1 clusters in hypercube 21.
> Found 1 clusters in hypercube 22.
> Found 1 clusters in hypercube 23.
> Found 1 clusters in hypercube 24.
> Found 1 clusters in hypercube 25.
> Found 1 clusters in hypercube 26.
> Found 1 clusters in hypercube 27.
> Found 1 clusters in hypercube 28.
> Found 1 clusters in hypercube 29.
Created 48 edges and 48 nodes in 0:00:00.099967.
Wrote visualization to: ./horse.html
no display found. Using non-interactive Agg backend