From c64d32625b24facd6132c59b8bb17e97107936b1 Mon Sep 17 00:00:00 2001 From: dm1sh Date: Tue, 31 Oct 2023 13:38:56 +0300 Subject: [PATCH] Fixed redundant axes on multi-subplots graphic, removed incorrect methods in Graph --- graph_widget/graph.py | 48 +++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/graph_widget/graph.py b/graph_widget/graph.py index f527ebf..d33543f 100644 --- a/graph_widget/graph.py +++ b/graph_widget/graph.py @@ -1,4 +1,5 @@ from matplotlib.figure import Figure +import matplotlib.pyplot as plt class Graph: @@ -11,54 +12,43 @@ class Graph: self.__y = y self.__fig = Figure(figsize=(5, 4), dpi=100) self.__chb = mult_subplots - self.__ax = self.__fig.add_subplot() + self.__xl = xl + self.__yl = yl self.draw_n_func_plot() - + self.draw_subplots() - self.__ax.set_xlabel(xl) - self.__ax.set_ylabel(yl) - self.__ax.legend() self.figure.tight_layout() - def add_vline(ax, x=0, ymin=0, ymax=1): - ax.axvline(x, ymin, ymax) - # принимаем плот и на нем же рисуем - - def add_hline( - ax, - y=0, - xmin=0, - xmax=1, - ): - ax.axhline(y, xmin, xmax) - - def draw_n_func_plot( + def add_ax_labels( self, - ): # много графиков на одном холсте - if self.__chb == 0 and len(self.__x) > 1: + ax: plt.Axes, + ): + ax.set_xlabel(self.__xl) + ax.set_ylabel(self.__yl) + + def draw_n_func_plot(self): # много графиков на одном холсте + if self.__chb == 0 and len(self.__x) > 0: + self.__ax = self.__fig.add_subplot() + for i in range(len(self.__x)): self.__ax.plot(self.__x[i], self.__y[i], label=self.labels[i]) - #новое(старое) условие против проскока - if self.__chb == 0 and len(self.__x) == 1: - self.__ax.plot(self.__x[0], self.__y[0], label=self.labels[0]) - + self.__ax.legend() + self.add_ax_labels(self.__ax) def draw_subplots( self, ): - if self.__chb == 1 and len(self.__x) > 1: + if self.__chb == 1 and len(self.__x) > 0: for i in range(len(self.__x)): - n = int(f"{len(self.__x)}1{i+1}") + n = int(f"{len(self.__x)}1{i+1}") # Nx1 grid (column), i+1 subplot axes = self.__fig.add_subplot(n) axes.set_title(f"График №{i+1}") axes.plot(self.__x[i], self.__y[i], label=self.labels[i]) - #новое(старое) условие против проскока - if self.__chb ==1 and len(self.__x) == 1: - self.__ax.plot(self.__x[0], self.__y[0], label=self.labels[0]) + self.add_ax_labels(axes) @property def figure(