Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib中使用for循环打印,带有列表_Python_Matplotlib - Fatal编程技术网

Python 在matplotlib中使用for循环打印,带有列表

Python 在matplotlib中使用for循环打印,带有列表,python,matplotlib,Python,Matplotlib,嗨,我有这个函数,我真的不知道如何正确地绘图。现在它什么也没显示,但确实改变了规模。因为很难完全复制代码和错误,我为您创建了一个简单的最小GUI,它有一个MPL小部件,并绘制了一些随机线 form_class = uic.loadUiType("GUI.ui")[0] # Load the UI class MainWindowClass(QtGui.QMainWindow, form_class): def __init__(self, target, Afb, np, convers

嗨,我有这个函数,我真的不知道如何正确地绘图。现在它什么也没显示,但确实改变了规模。

因为很难完全复制代码和错误,我为您创建了一个简单的最小GUI,它有一个MPL小部件,并绘制了一些随机线

form_class = uic.loadUiType("GUI.ui")[0]  # Load the UI

class MainWindowClass(QtGui.QMainWindow, form_class):
  def __init__(self, target, Afb, np, conversion, parent=None):
    QtGui.QMainWindow.__init__(self, parent)
    self.setupUi(self)
    if self.RadioButton.isChecked():
        Ids, Ugs = unipolar_steuerkennlinie(self.target, self.Afb, self.np, self.conversion)

  def plot_matplotlibwidget(self, *args):
    for x in range(0, 40):
         self.matplotlibwidget.axes.plot([args[0][x]], [[args[1][x]]])
    self.matplotlibwidget.axes.figure.canvas.draw_idle()  

它有一个小QLE,您可以指定要绘制多少条线。我希望这有帮助

您能否发布一个更完整的代码示例,以便我们可以看到您使用什么作为参数来调用
plot\u matplotlibwidget
Ids,Ugs=unipolar\u steuerkennie(self.target,self.Afb,self.np,self.conversion)self.plot\u matplotlibwidget(Ugs,Ids)
。Ugs和Ids是列表,列表包含哪些内容?我假设不同的x矢量和y矢量?在Ids中是x坐标,在Ugs中是y坐标
from PyQt4 import QtGui, QtCore
import sys
import functools
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
import numpy as np
from matplotlib.figure import Figure

class test(QtGui.QWidget):

    def __init__(self,parent=None):

        self.widget=QtGui.QWidget.__init__(self, parent)

        # Button to plot
        self.btnPlot = QtGui.QPushButton('Plot')
        self.btnPlot.connect(self.btnPlot, QtCore.SIGNAL('clicked()'), self.btnPlotPressed)

        # Line edit for number of lines
        self.qleN = QtGui.QLineEdit(str(0))

        # Create canvas
        self.setupMPLWidget()

        # Layout
        self.hbox = QtGui.QHBoxLayout()
        self.hbox.addWidget(self.btnPlot)
        self.hbox.addWidget(self.qleN)
        self.hbox.addWidget(self.canvas)

        self.setLayout(self.hbox)   


        self.show()

    def btnPlotPressed(self):

        """Plots a few lines."""

        # Get number of buttons to add
        n=int(self.qleN.text())

        # Generate some data
        xs,ys=self.randData(n)

        # Plot
        self.plot_matplotlibwidget(xs,ys)

    def randData(self,n):

        """Creates n random data sets."""

        ys=[]
        xs=[]
        for i in range(n):
            xs.append(np.arange(n-i))
            ys.append(np.random.random(size=xs[-1].shape))

        return xs,ys

    def plot_matplotlibwidget(self,*args):

        """Plots list of datasets."""

        for x in range(0, len(args[0])):
            self.ax.plot(args[0][x], args[1][x])
        self.ax.figure.canvas.draw_idle()  

    def setupMPLWidget(self):

        """Sets up a MPL figure to draw on."""

        # Create parenting widget
        self.plotFrame = QtGui.QWidget()
        self.plotFrame.setMaximumWidth(1)

        # Create Figure
        self.fig = Figure( dpi=100)
        #self.fig.set_size_inches(100,100,forward=True)
        self.canvas = FigureCanvas(self.fig)
        self.canvas.setParent(self.plotFrame)

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


def main():

    #Creating application   
    app = QtGui.QApplication(sys.argv)

    main_win = test()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()