From 792f16489e72ef3250df8b6265577edc2ce2ce75 Mon Sep 17 00:00:00 2001 From: ljw Date: Tue, 22 Sep 2026 09:31:57 +0800 Subject: [PATCH] Fix the bug that matplotlib.cm has no get_cmap for newer versions. --- coolbox/core/track/arcs/plot.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/coolbox/core/track/arcs/plot.py b/coolbox/core/track/arcs/plot.py index 8c13922..d9a75d4 100644 --- a/coolbox/core/track/arcs/plot.py +++ b/coolbox/core/track/arcs/plot.py @@ -1,13 +1,18 @@ import numpy as np import pandas as pd from matplotlib.patches import Arc, Rectangle, Ellipse, Polygon -from matplotlib import cm +import matplotlib from coolbox.utilities.genome import GenomeRange, get_logger log = get_logger(__name__) +try: + get_cmap = matplotlib.cm.get_cmap +except AttributeError: + get_cmap = matplotlib.pyplot.get_cmap + def draw_tapered_arc( ax, xy: tuple[float, float], @@ -109,7 +114,7 @@ def adjust_yaxis(height): def get_color(score, min_score, max_score): if properties['cmap'] is not None: - cmap = cm.get_cmap(properties['cmap']) + cmap = get_cmap(properties['cmap']) return cmap((max(score, min_score)-min_score)/(max_score-min_score)) else: return properties['color']