Commit e3e1275a authored by Amir MOHAMMADI's avatar Amir MOHAMMADI

Merge branch 'plots' into 'master'

Use the GridSubplot base class for epsc

See merge request !54
parents f322e5d0 0d093ebc
Pipeline #24145 failed with stage
in 26 minutes and 18 seconds
......@@ -93,9 +93,9 @@ class HistVuln(measure_figure.Hist):
int(idx / self._step_print) * self._step_print
if col == self._ncols - 1 or n == rest_print - 1:
ax2.set_ylabel("IAPMR (%)", color='C3')
ax2.tick_params(axis='y', colors='red')
ax2.yaxis.label.set_color('red')
ax2.spines['right'].set_color('red')
ax2.tick_params(axis='y', colors='C3')
ax2.yaxis.label.set_color('C3')
ax2.spines['right'].set_color('C3')
class VulnPlot(measure_figure.PlotBase):
......@@ -207,7 +207,7 @@ class Epc(VulnPlot):
self._pdf_page.savefig(mpl.gcf())
class Epsc(VulnPlot):
class Epsc(VulnPlot, measure_figure.GridSubplot):
''' Handles the plotting of EPSC '''
def __init__(self, ctx, scores, evaluation, func_load,
......@@ -221,8 +221,7 @@ class Epsc(VulnPlot):
self._var_param = var_param or "omega"
self._fixed_params = fixed_params or [0.5]
self._titles = ctx.meta.get('titles', []) * 2
self._legend_loc = self._legend_loc or 'upper center'
self._eval = True # always eval data with EPC
self._eval = True # always eval data with EPSC
self._split = False
self._nb_figs = 1
self._sampling = ctx.meta.get('sampling', 5)
......@@ -234,6 +233,9 @@ class Epsc(VulnPlot):
raise click.BadParameter("You must provide 4 scores files:{licit,"
"spoof}/{dev,eval}")
self._ncols = 1 if self._iapmr else 0
self._ncols += 1 if self._wer else 0
def compute(self, idx, input_scores, input_names):
''' Plot EPSC for PAD'''
licit_dev_neg = input_scores[0][0]
......@@ -252,15 +254,11 @@ class Epsc(VulnPlot):
elif self.n_systems > 1:
legend = 'Sys%d' % (idx + 1)
n_col = 1 if self._iapmr else 0
n_col += 1 if self._wer else 0
if not merge_sys or idx == 0:
# axes should only be created once
mpl.figure()
self._axis1 = mpl.subplot(1, n_col, 1)
if n_col == 2:
self._axis2 = mpl.subplot(1, n_col, 2)
self._axis1 = self.create_subplot(0)
if self._ncols == 2:
self._axis2 = self.create_subplot(1)
else:
self._axis2 = self._axis1
points = 10
......@@ -353,14 +351,7 @@ class Epsc(VulnPlot):
mpl.xticks(rotation=self._x_rotation)
if self._fixed_params is None or len(self._fixed_params) > 1 or \
idx == self.n_systems - 1:
# all plots share same legends
lines, labels = self._axis1.get_legend_handles_labels()
mpl.gcf().legend(
lines, labels, loc=self._legend_loc, fancybox=True, mode="expand",
framealpha=0.5, ncol=self._nlegends, bbox_to_anchor=(0., 1.12, 1., .102)
)
mpl.tight_layout()
self._pdf_page.savefig(bbox_inches='tight')
self.finalize_one_page()
class Epsc3D(Epsc):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment