diff --git a/bin/mangoplot.py b/bin/mangoplot.py index 83b15d0f..7d82b3a8 100755 --- a/bin/mangoplot.py +++ b/bin/mangoplot.py @@ -13,9 +13,20 @@ import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Cursor - +from matplotlib.colors import LinearSegmentedColormap from matplotlib.ticker import EngFormatter +plt.rcParams['font.family'] = "Lato,serif" +plt.rcParams['font.weight'] = "600" + +background_color = "#1A1C1D" +legend_facecolor = "#585f63" +legend_textcolor = "#cccbc9" +text_color = "#e8e6e3" +mango_color = "#BB770A" +graphbox_linewidth = 1.5 + +mango_cmap = LinearSegmentedColormap.from_list("mango_heat", [background_color, mango_color]) def identity(val): r""" @@ -373,12 +384,20 @@ if __name__ == '__main__': x_labels.append(str(fps_subdivs * i)) fig, ax = plt.subplots() + + # change color of the graph box to the same color as the text + for spine in ['left', 'right', 'bottom', 'top']: + ax.spines[spine].set_color(text_color) + ax.spines[spine].set_linewidth(graphbox_linewidth) + im = ax.imshow(distributions, aspect="auto", - extent=[0, max_size*fps_subdivs, 0, num_benchs]) + extent=[0, max_size*fps_subdivs, 0, num_benchs], + cmap=mango_cmap) + # draw thick line that separates each benchmark for i in range(len(y_labels)+1): - ax.axhline(float(i), color='white', lw=2) + ax.axhline(float(i), color=text_color, lw=graphbox_linewidth) i = 0 for datafile in database.datafiles: @@ -388,32 +407,36 @@ if __name__ == '__main__': lw=3) ax.axvline(datafile.get_variable("0.1%"), - color='#f45d7bff', + color='#35260f', label=("0.1%" if i == 0 else None), **kwargs) ax.axvline(datafile.get_variable("1%"), - color='#c879c1ff', + color='#6E4503', label=("1%" if i == 0 else None), **kwargs) ax.axvline(datafile.get_variable("50%"), - color='#7b4182ff', + color='#0967BA', label=("50%" if i == 0 else None), **kwargs) ax.axvline(datafile.get_variable("average fps"), - color='#336f74ff', + color='#003A6E', label=("Average" if i == 0 else None), **kwargs) i += 1 + ax.tick_params(axis='y', colors=text_color) + ax.tick_params(axis='x', colors=text_color) ax.set_yticks(np.arange(len(y_labels)-0.5, 0, -1), labels=y_labels) ax.grid(False) + fig.set_facecolor(background_color) + ax.ticklabel_format(axis='x', style='plain') formatter0 = EngFormatter(unit='FPS') ax.xaxis.set_major_formatter(formatter0) plt.tight_layout() - plt.legend() + plt.legend(facecolor=legend_facecolor, labelcolor=legend_textcolor) cursor = Cursor(ax, horizOn=False,