为什么当我在做一个小游戏的时候,窗户会切割我的桌子?

2024-10-03 04:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我的目标是有一个图表,在左边有一个小表格,里面有一些关于这个图表的参数

我的代码是:

# 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()

Output of my code

你怎么能看到桌子在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_())

在这里,您可以看到相同的问题:

enter image description here


Tags: pathimportselftruedataplottitletable
1条回答
网友
1楼 · 发布于 2024-10-03 04:28:40

我找到了一个解决办法,但我不知道这是不是最好的

在最小可复制示例的代码中

我创建了一个包含一行和两列的子地块 我的想法是绘制表格的第一列,第二列是图表

    plt.subplot(1, 2, 2)
    plt.plot(self.values,"-o")
    plt.title("CUSUM")
    plt.xlabel("samples")
    plt.subplot(1, 2, 1)
    the_table = plt.table(cellText=table_data,
                  loc="center") # tu put in the center 
    plt.axis('off') # turn off the axis and the outside box
    plt.show()

结果是:

enter image description here

相关问题 更多 >