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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
:orphan:
.. To get rid of WARNING: document isn't included in any toctree
Persistence graphical tools user manual
=======================================
Definition
----------
.. include:: persistence_graphical_tools_sum.inc
Show persistence as a barcode
-----------------------------
This function can display the persistence result as a barcode:
.. plot::
:include-source:
import matplotlib.pyplot as plt
import gudhi
off_file = gudhi.__root_source_dir__ + '/data/points/tore3D_300.off'
point_cloud = gudhi.read_points_from_off_file(off_file=off_file)
rips_complex = gudhi.RipsComplex(points=point_cloud, max_edge_length=0.7)
simplex_tree = rips_complex.create_simplex_tree(max_dimension=3)
diag = simplex_tree.persistence(min_persistence=0.4)
gudhi.plot_persistence_barcode(diag)
plt.show()
Show persistence as a diagram
-----------------------------
This function can display the persistence result as a diagram:
.. plot::
:include-source:
import matplotlib.pyplot as plt
import gudhi
# rips_on_tore3D_1307.pers obtained from write_persistence_diagram method
persistence_file=gudhi.__root_source_dir__ + \
'/data/persistence_diagram/rips_on_tore3D_1307.pers'
ax = gudhi.plot_persistence_diagram(persistence_file=persistence_file,
legend=True)
# We can modify the title, aspect, etc.
ax.set_title("Persistence diagram of a torus")
ax.set_aspect("equal") # forces to be square shaped
plt.show()
Note that (as barcode and density) it can also take a simple `np.array`
of shape (N x 2) encoding a persistence diagram (in a given dimension).
.. plot::
:include-source:
import matplotlib.pyplot as plt
import gudhi
import numpy as np
d = np.array([[0, 1], [1, 2], [1, np.inf]])
gudhi.plot_persistence_diagram(d)
plt.show()
Persistence density
-------------------
:Requires: `SciPy <installation.html#scipy>`_
If you want more information on a specific dimension, for instance:
.. plot::
:include-source:
import matplotlib.pyplot as plt
import gudhi
# rips_on_tore3D_1307.pers obtained from write_persistence_diagram method
persistence_file=gudhi.__root_source_dir__ + \
'/data/persistence_diagram/rips_on_tore3D_1307.pers'
birth_death = gudhi.read_persistence_intervals_in_dimension(
persistence_file=persistence_file,
only_this_dim=1)
pers_diag = [(1, elt) for elt in birth_death]
# Use subplots to display diagram and density side by side
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(12, 5))
gudhi.plot_persistence_diagram(persistence=pers_diag,
axes=axes[0])
gudhi.plot_persistence_density(persistence=pers_diag,
dimension=1, legend=True, axes=axes[1])
plt.show()
LaTeX support
-------------
If you are facing issues with `LaTeX <installation.html#latex>`_ rendering, you can still deactivate LaTeX rendering by
saying:
.. code-block:: python
import gudhi
gudhi.persistence_graphical_tools._gudhi_matplotlib_use_tex=False
|