in benchmark/benchmark/plot.py [0:0]
def _plot(self, x_label, y_label, y_axis, z_axis, type):
plt.figure()
markers = cycle(['o', 'v', 's', 'p', 'D', 'P'])
self.results.sort(key=self._natural_keys, reverse=(type == 'tps'))
for result in self.results:
y_values, y_err = y_axis(result)
x_values = self._variable(result)
if len(y_values) != len(y_err) or len(y_err) != len(x_values):
raise PlotError('Unequal number of x, y, and y_err values')
plt.errorbar(
x_values, y_values, yerr=y_err, label=z_axis(result),
linestyle='dotted', marker=next(markers), capsize=3
)
plt.legend(loc='lower center', bbox_to_anchor=(0.5, 1), ncol=3)
plt.xlim(xmin=0)
plt.ylim(bottom=0)
plt.xlabel(x_label, fontweight='bold')
plt.ylabel(y_label[0], fontweight='bold')
plt.xticks(weight='bold')
plt.yticks(weight='bold')
plt.grid()
ax = plt.gca()
ax.xaxis.set_major_formatter(default_major_formatter)
ax.yaxis.set_major_formatter(default_major_formatter)
if 'latency' in type:
ax.yaxis.set_major_formatter(sec_major_formatter)
if len(y_label) > 1:
secaxy = ax.secondary_yaxis(
'right', functions=(self._tps2bps, self._bps2tps)
)
secaxy.set_ylabel(y_label[1])
secaxy.yaxis.set_major_formatter(mb_major_formatter)
for x in ['pdf', 'png']:
plt.savefig(PathMaker.plot_file(type, x), bbox_inches='tight')