diff --git a/python/linktest/report.py b/python/linktest/report.py index e340599484de3be3796a8e15da20c2ddbdf8800c..4374e386ff41de09b1a358158e393f6ebc64c027 100644 --- a/python/linktest/report.py +++ b/python/linktest/report.py @@ -52,25 +52,28 @@ figure_size_cm =[21 ,29.7 ] #A4 Paper # Taken from https://github.com/matplotlib/matplotlib/issues/20964 class NotRoundedAxesImage(AxesImage): """AxesImage subclass which does not round image extents to fit frame. This rounding leads to improper alignment between data and image.""" + def __init__(self,axis): + super().__init__(axis) + def make_image(self,renderer,magnification=1.0,unsampled=False): x1,x2,y1,y2=self.get_extent() bbox=Bbox(array([[x1,y1],[x2,y2]])) return self._make_image(self._A,bbox,TransformedBbox(bbox,self.get_transform()),((self.get_clip_box() or self.axes.bbox) if self.get_clip_on() else self.figure.bbox),magnification,unsampled=unsampled,round_to_pixel_border=False) def fixedPixelImage(axis,data,cmap,vmin,vmax): - image=NotRoundedAxesImage(axis,interpolation="none") # Create image object + image=NotRoundedAxesImage(axis) # Create image object image.set(cmap=cmap,data=data,norm=Normalize(vmin=vmin,vmax=vmax,clip=False)) # Add data to image object axis.add_image(image) # Add image object to axis object - axis.set_ylim(axis.get_ylim()[::-1]) #Invert y-axis + axis.set_ylim(axis.get_ylim()[::-1]) # Invert y-axis return image def fixedPixelImage_shiftLabels(figure,axis): - label_offset=ScaledTranslation( 0.000,0.025,figure.dpi_scale_trans) - for label in axis.xaxis.get_majorticklabels(): - label.set_transform(label.get_transform()+label_offset) - label_offset=ScaledTranslation(-0.025,0.000,figure.dpi_scale_trans) - for label in axis.yaxis.get_majorticklabels(): - label.set_transform(label.get_transform()+label_offset) + label_offset=ScaledTranslation( 0.000,0.025,figure.dpi_scale_trans) + for label in axis.xaxis.get_majorticklabels(): + label.set_transform(label.get_transform()+label_offset) + label_offset=ScaledTranslation(-0.025,0.000,figure.dpi_scale_trans) + for label in axis.yaxis.get_majorticklabels(): + label.set_transform(label.get_transform()+label_offset) def find_renderer(fig): """ @@ -514,7 +517,7 @@ def timing___report(pdf, if correct_image_dimensions: TTT_Image=fixedPixelImage(axis=TTT_axis,data=timingData["Timings"],cmap=get_cmap(matrix_colormap,2048),vmin=minMaxPlotTimings[0],vmax=minMaxPlotTimings[1]) else: - TTT_Image=TTT_axis.imshow(timingData["Timings"],interpolation="none",clip_on=False,cmap=get_cmap(matrix_colormap,2048),vmin=minMaxPlotTimings[0],vmax=minMaxPlotTimings[1]) + TTT_Image=TTT_axis.imshow(timingData["Timings"],interpolation="none",rasterized=True,clip_on=False,cmap=get_cmap(matrix_colormap,2048),vmin=minMaxPlotTimings[0],vmax=minMaxPlotTimings[1]) ticks=arange(0,numHosts,1) TTT_axis.set_xticks(append(ticks[0:-1:down_sample_factor],[ticks[-1]])) TTT_axis.set_xticklabels([f"{rank:0{numDigitsLastHostRank}d}" for rank in list(range(len(hosts))[0:-1:down_sample_factor])+[len(hosts)-1]],rotation=90,fontsize=font_scale_factor) @@ -1008,7 +1011,7 @@ def pattern__report(pdf, if correct_image_dimensions: TTS_Image=fixedPixelImage(axis=TTS_axis,data=timingData["Access Pattern"],cmap=cMap,vmin=1,vmax=numSteps) else: - TTS_Image=TTS_axis.imshow(timingData["Access Pattern"],interpolation="none",clip_on=False,cmap=cMap,vmin=1,vmax=numSteps) + TTS_Image=TTS_axis.imshow(timingData["Access Pattern"],interpolation="none",rasterized=True,clip_on=False,cmap=cMap,vmin=1,vmax=numSteps) # Configure Ticks ticks=arange(0,numHosts,1) TTS_axis.set_xticks(append(ticks[0:-1:down_sample_factor_y],ticks[-1])) @@ -1058,7 +1061,7 @@ def pattern__report(pdf, if correct_image_dimensions: TST_Image=fixedPixelImage(axis=TST_axis,data=TST,cmap=cMap,vmin=minMaxPlotTimings[0],vmax=minMaxPlotTimings[1]) else: - TST_Image=TST_axis.imshow(TST,interpolation="none",clip_on=False,cmap=get_cmap(matrix_colormap,2048),vmin=minMaxPlotTimings[0],vmax=minMaxPlotTimings[1]) + TST_Image=TST_axis.imshow(TST,interpolation="none",rasterized=True,clip_on=False,cmap=get_cmap(matrix_colormap,2048),vmin=minMaxPlotTimings[0],vmax=minMaxPlotTimings[1]) # Configure Ticks TST_axis.set_aspect(numSteps/numHosts) xticks=arange(0,numSteps,1)