python - 如何在 PyQt 画布上显示 x 和 y 标签?
问题描述
我尝试使用 Python 和 PyQt 制作桌面应用程序。我想做的很简单,从 txt 文件中加载阻抗数据,然后绘制它。
我canvas
在我的对话框和情节线上制作了它,但xlabel
并ylabel
没有表示。
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_()
解决方案
self.fig.tight_layout()
在绘制画布之前尝试调用Z_processing()
推荐阅读
- vue.js - 模拟函数在 Vue 测试中没有返回值
- python - 如何处理棋盘格中的鼠标光标移动事件?
- c# - RabbitMq like 与 Masstransit 的话题交流
- powerapps - 共享 Power App 时无法将安全角色分配给 Dataverse 表
- python - 使用列表作为函数的参数
- java - Spring Batch JpaTransactionManager 会影响 Spring Data JPA?
- python - 我不会在我的游戏石头,纸和剪刀中输
- oauth2-playground - 多个并发访问代码请求/上传
- php - MySQL - 按星期几比较几个月的数据 - 例如每个月的第一个星期六的会话
- swift - 如何在 Xcode 13 中使用图像文字