首页 > 解决方案 > 如何在 PyQt 画布上显示 x 和 y 标签?

问题描述

我尝试使用 Python 和 PyQt 制作桌面应用程序。我想做的很简单,从 txt 文件中加载阻抗数据,然后绘制它。

canvas在我的对话框和情节线上制作了它,但xlabelylabel没有表示。

GUI上的标签问题

当我在没有 GUI 的情况下运行脚本时,它会很好地显示标签。

没有图形用户界面

似乎轴的大小太大而无法在布局上显示标签。我能控制它吗?

import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas

from PyQt5.QtWidgets import *
from PyQt5 import uic

uiFile = "../UI/DataAnalyzer.ui"

class MainDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self, None)
        uic.loadUi(uiFile, self)

        self.fileDialog_btn_1.clicked.connect(self.loadFile)

        self.fig = plt.Figure()
        self.ax = self.fig.add_subplot(111)

        self.canvas = FigureCanvas(self.fig)
        self.lay.addWidget(self.canvas)
        self.canvas.draw()    

    def loadFile(self):
        fileNames = QFileDialog.getOpenFileNames(self)
        self.Z_processing(fileNames)

    def Z_processing(self, fileNames):
        # print(fileNames[0])
        # print(type(fileNames[0]))

        self.ax.cla()

        for file in fileNames[0]:
            data = np.loadtxt(file)
            self.ax.plot(data[:, 0], data[:, 1])
            self.ax.plot(data[:, 0], data[:, 2])

        self.ax.grid()
        self.ax.set_xlim([0, 20e6])
        self.canvas.draw()

app = QApplication(sys.argv)
mainDialog = MainDialog()
mainDialog.show()
app.exec_()

标签: pythonmatplotlibpyqt

解决方案


self.fig.tight_layout()在绘制画布之前尝试调用Z_processing()


推荐阅读