Refactored project to remove poetry. Pure pip used instead

This commit is contained in:
2023-10-24 13:48:24 +03:00
parent eb6309582e
commit e2b9025bc5
36 changed files with 106 additions and 2077 deletions

View File

@@ -0,0 +1,3 @@
from .graph_widget import GraphWidget
__all__ = ("GraphWidget",)

View File

@@ -0,0 +1,90 @@
from matplotlib.figure import Figure
class Graph:
def __init__(
self, x, y, labels, mult_subplots=0, xl="x", yl="y", linetype="k", lims=False
):
# словарь из настроек?
self.labels = labels
self.__x = x
self.__y = y
self.__fig = Figure(figsize=(5, 4), dpi=100)
self.__chb = mult_subplots
self.__ax = self.__fig.add_subplot()
# сделать отслеживание за состояние кнопок потом
"""
if self.__chb==0:
if len(self.__x)>1:
for i in range(len(self.__x)):
n=int(f"{len(self.__x)}1{i+1}")
axes=self.__fig.add_subplot(n)
axes.set_title(f"График №{i+1}")
c=axes.plot(self.__x[i],self.__y[i],label=lab)
else:
line=self.__ax.plot(self.__x[0],self.__y[0],label=lab,)
print(self.__x)
else:
if len(self.__x)>1: #много графиков на одном холсте
for i in range(len(self.__x)):
self.__ax.plot(self.__x[i],self.__y[i])
else:
line=self.__ax.plot(self.__x[0],self.__y[0],label=lab,)
print(self.__x)
"""
self.draw_n_func_plot()
self.draw_one_func()
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(
self,
): # много графиков на одном холсте
if self.__chb == 0 and len(self.__x) > 1:
for i in range(len(self.__x)):
self.__ax.plot(self.__x[i], self.__y[i], label=self.labels[i])
def draw_one_func(
self,
):
if len(self.__x) == 1:
self.__ax.plot(self.__x[0], self.__y[0], label=self.labels[0]) #
def draw_subplots(
self,
):
if self.__chb == 1 and len(self.__x) > 1:
for i in range(len(self.__x)):
n = int(f"{len(self.__x)}1{i+1}")
axes = self.__fig.add_subplot(n)
axes.set_title(f"График №{i+1}")
axes.plot(self.__x[i], self.__y[i], label=self.labels[i])
@property
def figure(
self,
):
return self.__fig

View File

@@ -0,0 +1,24 @@
from .graph import Graph
import matplotlib
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from PyQt5 import QtWidgets
matplotlib.use("Qt5Agg")
class GraphWidget(QtWidgets.QWidget):
def __init__(self, x, y, labels, mult_plots=False):
super().__init__()
graph = Graph(x, y, labels, mult_subplots=mult_plots)
sc = FigureCanvasQTAgg(graph.figure)
# Create toolbar, passing canvas as first parament, parent (self, the MainWindow) as second.
toolbar = NavigationToolbar(sc, self)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(toolbar)
layout.addWidget(sc)
self.setLayout(layout)