Холст Matplotlib создается с помощью этого класса:
Код: Выделить всё
class MplCanvas(FigureCanvasQTAgg):
def __init__(self, parent=None, width=5, height=4, dpi=100):
self.fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = self.fig.add_subplot(111)
super(MplCanvas, self).__init__(self.fig)
Код: Выделить всё
self.canvas_meas_contour = MplCanvas(self, width=5, height=4, dpi=winconsts.PLOT_2D_DPI)
self.canvas_meas_contour.axes.tick_params(labelsize = winconsts.GRAPH_CONTOUR_TICKS_FONTSIZE)
vbl_contour = QVBoxLayout()
vbl_contour.addWidget(self.canvas_meas_contour)
self.ui.widget_meas_contour.setLayout(vbl_contour)
Код: Выделить всё
self.canvas_meas_contour.axes.cla()
self.canvas_meas_contour.axes.set_title('Contour')
self.canvas_meas_contour.axes.title.set_size(winconsts.GRAPH_CONTOUR_FONTSIZE)
cs = self.canvas_meas_contour.axes.contourf(X, Y, Z, levels = Z_levels, cmap = colormaps.colormap_sunset())
cbar = self.canvas_meas_contour.fig.colorbar(cs, ax=self.canvas_meas_contour.axes)
cbar.ax.tick_params(labelsize = winconsts.GRAPH_CONTOUR_TICKS_FONTSIZE)
self.canvas_meas_contour.draw()

При построении контура с теми же данными и цветовой картой в автономном Matplotlib, как и ожидалось, получается одна цветовая полоса.
Если я добавлю вторую цветовую полосу перед вызовом draw(), эта последняя полоса будет одинарной, а не двойной.
Подробнее здесь: https://stackoverflow.com/questions/790 ... de6-widget