diff options
author | Vincent Rouvreau <10407034+VincentRouvreau@users.noreply.github.com> | 2020-06-29 08:22:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-29 08:22:30 -0700 |
commit | d58fe553c806874d723c7e6d4fee368cc308e474 (patch) | |
tree | c790f169a35277e5483d4508e2fa7d82756e6b78 /src | |
parent | cec4a5d7df6d5ed43511e94f9db580489979105a (diff) | |
parent | 0f9eb77804b3aba0b1321a2e1422bf38c43c9943 (diff) |
Merge pull request #357 from VincentRouvreau/no_latex_for_matplotlib_if_not_available
No latex for matplotlib if not available
Diffstat (limited to 'src')
-rw-r--r-- | src/python/gudhi/persistence_graphical_tools.py | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/python/gudhi/persistence_graphical_tools.py b/src/python/gudhi/persistence_graphical_tools.py index 6a74a6ca..c6766c70 100644 --- a/src/python/gudhi/persistence_graphical_tools.py +++ b/src/python/gudhi/persistence_graphical_tools.py @@ -11,6 +11,7 @@ from os import path from math import isfinite import numpy as np +from functools import lru_cache from gudhi.reader_utils import read_persistence_intervals_in_dimension from gudhi.reader_utils import read_persistence_intervals_grouped_by_dimension @@ -56,6 +57,17 @@ def _array_handler(a): else: return a +@lru_cache(maxsize=1) +def _matplotlib_can_use_tex(): + """This function returns True if matplotlib can deal with LaTeX, False otherwise. + The returned value is cached. + """ + try: + from matplotlib import checkdep_usetex + return checkdep_usetex(True) + except ImportError: + print("This function is not available, you may be missing matplotlib.") + def plot_persistence_barcode( persistence=[], @@ -105,9 +117,10 @@ def plot_persistence_barcode( try: import matplotlib.pyplot as plt import matplotlib.patches as mpatches - from matplotlib import rc - plt.rc('text', usetex=True) - plt.rc('font', family='serif') + if _matplotlib_can_use_tex(): + from matplotlib import rc + plt.rc('text', usetex=True) + plt.rc('font', family='serif') if persistence_file != "": if path.isfile(persistence_file): @@ -250,9 +263,10 @@ def plot_persistence_diagram( try: import matplotlib.pyplot as plt import matplotlib.patches as mpatches - from matplotlib import rc - plt.rc('text', usetex=True) - plt.rc('font', family='serif') + if _matplotlib_can_use_tex(): + from matplotlib import rc + plt.rc('text', usetex=True) + plt.rc('font', family='serif') if persistence_file != "": if path.isfile(persistence_file): @@ -422,9 +436,10 @@ def plot_persistence_density( import matplotlib.pyplot as plt import matplotlib.patches as mpatches from scipy.stats import kde - from matplotlib import rc - plt.rc('text', usetex=True) - plt.rc('font', family='serif') + if _matplotlib_can_use_tex(): + from matplotlib import rc + plt.rc('text', usetex=True) + plt.rc('font', family='serif') if persistence_file != "": if dimension is None: |