Привет, моя цель - создать график, а слева - небольшую таблицу с некоторыми параметрами этого графика.
Мой код такой:
# Fazer o grafico
table_data= [ ['δ', str(round(self.novodelta,3))],
['k', str(round(k,3))],
['h', str(round(h,3))], ]
plt.subplot(2, 1, 1)
plt.plot(self.Observacoes,T, '-o')
plt.plot(self.Observacoes,C, '-o')
plt.plot(self.Observacoes,Lim_inf_CUSUM)
plt.plot(self.Observacoes,Lim_sup_CUSUM)
the_table = plt.table(cellText=table_data,
loc="left")
plt.title("CUSUM")
plt.xlabel("Amostras")
plt.legend(["T", "C", "Limite inferiror", "Limite Superior"],loc='upper center', bbox_to_anchor=(0.5, -0.12),fancybox=True, shadow=True, ncol=4)
plt.xticks(np.arange(min(self.Observacoes), max(self.Observacoes)+1, 1.0))
plt.tight_layout()
observacoes=self.Observacoes
plt.subplot(2, 1, 2)
plt.plot(observacoes,E, '-o')
plt.plot(observacoes,LC_EWMA)
plt.plot(observacoes,LSC_EWMA)
plt.plot(observacoes,LIC_EWMA)
plt.title("EWMA")
plt.xlabel("Amostras")
plt.legend(["E", "LC", "Limite inferiror", "Limite Superior"],loc='upper center', bbox_to_anchor=(0.5, -0.15),fancybox=True, shadow=True, ncol=4)
plt.xticks(np.arange(min(self.Observacoes), max(self.Observacoes)+1, 1.0))
plt.tight_layout()
Как вы можете видеть, что таблица находится наверху оси Y, и окно обрезает первый столбец, я хотел бы исправить это, я имею в виду, что перед этим должно быть некоторое пространство Таблица и после таблицы второй график будет иметь другую таблицу, но я пытаюсь сделать это сначала
РЕДАКТИРОВАТЬ
Я забыл упомянуть, что я использую pyqt5 для создания этого и это добавление, когда я нажимаю одну кнопку, чтобы открыть графики
РЕДАКТИРОВАТЬ 2
здесь это минимальный, воспроизводимый пример
import os
import sys
import matplotlib.pyplot as plt
from PyQt5 import uic, QtWidgets
import numpy as np
from matplotlib.gridspec import GridSpec
import statistics
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
ui_path = os.path.dirname(os.path.abspath(__file__))
Ui_MainWindow, QtBaseClass = uic.loadUiType(os.path.join(ui_path, "problem.ui"))
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.title = 'PyQt5 button - pythonspot.com'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
button = QPushButton('PyQt5 button', self)
button.clicked.connect(self.graph)
def graph(self):
self.values=[2,4,5,6]
table_data= [ ['δ', 1],
['k', 2],
['h', 3], ]
plt.subplot(2, 1, 1)
plt.plot(self.values,"-o")
the_table = plt.table(cellText=table_data,
loc="left")
plt.title("CUSUM")
plt.xlabel("samples")
plt.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
Здесь вы можете увидеть ту же проблему:
введите описание изображения здесь