Skip to content

Commit

Permalink
workaround to matplotlib bug in fill_between() for large plots
Browse files Browse the repository at this point in the history
  • Loading branch information
luponzo86 committed Mar 4, 2020
1 parent 60281d1 commit bd6b8fd
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion rhapsody/predict/figures.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,12 @@ def print_sat_mutagen_figure(filename, rhapsody_obj, res_interval=None,
# average pathogenicity profile
x_resids = np.arange(1, upper_lim+1)
# shading showing range of values
ax2.fill_between(x_resids, min_p, max_p, alpha=0.5,
# NB: a bug in pyplot.fill_between() arises when selecting a region with
# set_xlim() in a large plot (e.g. > 1000), causing the shaded area to
# be plotted even though it's outside the selected region. As a workaround,
# here I slice the plot to fit the selected region.
sl = slice(max(1, res_i-2), min(res_f+2, upper_lim+1))
ax2.fill_between(x_resids[sl], min_p[sl], max_p[sl], alpha=0.5,
edgecolor='salmon', facecolor='salmon')
# plot average profile for other predictions, if available
if extra_plot is not None:
Expand Down

0 comments on commit bd6b8fd

Please sign in to comment.