我需要在PyQt应用程序中显示一些图表,所以我写下了这些代码。这是作品,但有时,绘制图表会花费很多时间,它会“冻结”主窗口。
我认为在另一个线程中做应该解决它。但是我该怎么做呢?或者,有另一种方法可以在“非块”模式下绘制图表?
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MplCanvas(FigureCanvas):
def
我想用Matplotlib创建的类连接QMainWindow中的一个QMainWindow,以便在按下按钮时显示网格。这是守则的一部分:
class Ventana(QMainWindow):
def __init__(self):
super(QMainWindow, self).__init__()
self.channel = ViewWidget()
#I add a toolbar and i put the button in here
self.toolbar2.addWidget(self.btn_showgrid)
self.bt
我已经创建了一个简单的python脚本,它在运行时应该在PyQT窗口中显示一个嵌入的matplotlib图。我使用了教程来嵌入和运行图形。除了命名约定和整个UI中的一些不同之外,我的图形是完全按照教程中提到的图形生成的。
我的问题是,我希望这是一个允许缩放和拖动的交互式图形,但我希望只使用鼠标(单击和拖动,滚轮等),而不使用工具栏(因为我觉得它很难看)。
窗口小部件类:
class MplCanvas(FigureCanvas):
"""
Creates a canvas on which to draw our widgets
"
我是Python的新手,我想请您帮助我解决代码中的一个问题。我使用QtDesigner创建UI,然后使用pyuic4转换为test.py文件。我还有mplwidget.py和modules.py文件,如下所示:
test.py
from PyQt4 import QtCore, QtGui
from numpy import *
import threading, thread
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure impor
我正在尝试在kivy应用程序中设置matplotlib图,该应用程序接受kivy按钮的命令,但当按钮触发方法时,很难触发event.canvas.draw()函数来更新显示的图形。关于如何绕过这件事有什么想法吗?现在,我已经设置了一个按键来切换这个函数,但是我更希望'button2‘触发这个事件。
from kivy.uix.boxlayout import BoxLayout
from matplotlib import pyplot as plt
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvas
impo
我尝试了PyQt5教程和。
在这个站点中,有一个导入matplotlib的示例代码。
我尝试了这段代码,然后我就可以得到PyQt窗口了。在那个地方也是一样的。
但我收到了警告。
MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile,
我在试着做一首歌的波形。并在PyQt封装的matplotlib窗口中显示它,但我一直遇到一个错误:
RuntimeError: Can not put single artist in more than one figure
当我尝试这样做时,就会发生这种情况:
self.axes.add_collection(col)
与我导入pyplot时不同的是,当我只是调用waveform时,它不会自动添加到绘图中。这就是问题所在,而使用add_collection,我唯一能用谷歌搜索到的方法,对我来说并不是很有效。
更多信息,col是一个PolyCollection。
这是完整的代码:
impo
以下是密码。它通过按一个按钮画出一条线。然而,当我按下按钮时,它只是打印出来。
matplotlib.lines.Line2D对象在0x11371fcc0 .
但无法在画布上显示线条。你是怎么修好的?
import matplotlib
matplotlib.use("Qt5Agg")
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from ma
我从另一个来源借用了一些代码,我想编辑生成的图形。以下是脚本中的相关代码(我认为)。
import gtk #the gui toolkit we'll use:
from matplotlib.figure import Figure
from Tkinter import *
from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
#create a window to put the plot in
win = gtk.Window()
#connect the dest
我希望创建一个应用程序,将Matplotlib动画嵌入到PyQT4图形用户界面中。我试图弄清楚FigureCanvasQTAgg对象是如何工作的,并且一旦创建了轴限制,就很难更改它。在下面的程序中,使用FigureCanvasQTAgg对象生成一个非常简单的图形,我希望按下按钮来改变结果图的x轴的限制。(请注意,下面的代码是末尾代码的简化版本。)
import sys
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matp
我正在尝试使用Python显示一些数据。使用最新版本的Python2.7,我使用以下类:
class MyMplCanvas(FigureCanvas):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
def __init__(self):
fig = Figure(figsize=(5, 4), dpi=100)
self.axes = fig.add_subplot(111)
# We want the axes cl
我刚刚用Qt Designer做了一个简单的gui,这个gui有4个按钮和一个小部件。小部件将显示动画,按钮用于暂停动画、恢复、清理画布和开始动画。我写了这段代码:
import sys
from PyQt4 import QtGui, uic
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
de
编辑:
我决定重写这个,以包括一个关于我的问题的工作示例。虽然这是相当长的时间,但我希望这对将来的许多人都是有用的。
import sys
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MainWindow(QMainWindow):
def __init__(self):
我需要一些draw2d分层窗格序列化的帮助。我读过有关序列化的文章,发现一个类只有在实现Serializable接口时才能被序列化,并且它的所有字段本身要么是可序列化的,要么是瞬态的。
我有一个非常复杂的图,我需要序列化,但不知道如何继续?我发现LayeredPane类只包含一个List类型的字段。在任何情况下,有没有人可以帮助我们编写一个递归方法或其他东西,以使LayeredPane对象可序列化?
@mKorbel我面临的问题的一个示例场景很难给出,因为它是一个非常大的应用程序的一部分。尽管如此,我还是编了一个案例,这可能会让你对这个问题有一个概念:
public class Editor
我只想把我的x和y标签,我的子图,我不知道我做错了什么?代码没有给我一个错误,它只是显示标签。下面没有显示调用update_figure函数的代码。Update_figure每秒钟都会被调用。但是我希望init函数中有set_xlabel函数。
有人能帮我解决这个问题吗?
class MyMplCanvas(FigureCanvas):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
def __init__(self, parent=None,
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
from PyQt5 import QtCore
from PyQt5 import QtWidgets
class MyFigure(QtCore.QObject):
def
我试图在Matplotlib中做一些非常直接的事情,但是遇到了很多障碍;在谷歌搜索了几个小时之后,我认为这需要一些非常特殊的魔法。我只想让我的GUI从一个空白屏幕开始,然后导入一个需要一个彩色条的文件--如果这个文件很好,就会添加一个彩色条。如果该文件再次添加(或另一个文件),则移除色条并绘制一个新的。如果文件是坏的,我们重置为初始条件(没有颜色条或绘图)。我真的希望下面的代码对我在这里得到的东西有意义,非常感谢您的帮助和提前的时间:
import sys
import os
import random
import matplotlib
matplotlib.use('Qt5Agg&
我在pyqt5上工作,我必须使用一些matplotlib,我看过如何使用matplotlib.backends.backend_qt5agg在pyqt5中嵌入matplotlib,但我仍然有几行代码无法设置为在pyqt5上工作,我的意思是我仍然不知道如何在我的画布上显示它?
class MyMplCanvas(FigureCanvas):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg,
etc.)."""
def __init__(self, parent