Source code for schrodinger.application.desmond.event_analysis.pl_image_tools

from mpl_toolkits import axes_grid1 as mpl_axes_grid1

from schrodinger.application.desmond import report_helper


[docs]def add_histo(ax, data, color, na_color='#D9D9D9', grey_axes_decorations=True): """ Add a histogram to the right of the given axes :param ax: The axes to add the histogram to :type ax: `matplotlib.axes.Axes` :param data: The data to calculate the histogram for :type data: list :param color: The color for the histogram bars :type color: str :param na_color: The color for the "NA" text if no data is present. Defaults to light gray. :type na_color: str :param grey_axes_decorations: If True, the spines, ticks, and axis labels will be colored dark gray. If False, they will be colored the default matplotlib colors. :type grey_axes_decorations: bool :return: The newly added histogram axes :rtype: `matplotlib.axes.Axes` """ divider = mpl_axes_grid1.make_axes_locatable(ax) hax = divider.append_axes("right", 1.2, pad=0.1, sharey=ax) if data.count(0) == len(data): hax.set_xlim(xmax=1) color = 'white' hax.text(0.5, 0.5, 'NA', size=18, color=na_color, horizontalalignment='center', verticalalignment='center') hax.hist(data, bins=10, orientation='horizontal', density=True, rwidth=0.7, color=color, edgecolor="none") hax.xaxis.set_visible(False) hax.tick_params('y', labelleft=False, labelright=False) if grey_axes_decorations: report_helper.change_plot_colors(hax) return hax