def __init__(self): super().__init__() self.setAutoFillBackground(True) self.setPalette(QPalette(QColor(165, 193, 228))) self.updateGradient() self.setTitle("A Simple QwtPlot Demonstration") self.insertLegend(Qwt.QwtLegend(), Qwt.QwtPlot.RightLegend) #axes self.setAxisTitle(Qwt.QwtPlot.xBottom, "x -->") self.setAxisScale(Qwt.QwtPlot.xBottom, 0.0, 10.0) self.setAxisTitle(Qwt.QwtPlot.yLeft, "y -->") self.setAxisScale(Qwt.QwtPlot.yLeft, -1.0, 1.0) # canvas self.canvas = Qwt.QwtPlotCanvas() self.canvas.setLineWidth(1) self.canvas.setFrameStyle(QFrame.Box | QFrame.Plain) self.canvas.setBorderRadius(15) self.canvasPalette = QPalette(Qt.white) self.canvasPalette.setColor(QPalette.Foreground, QColor(133, 190, 232)) self.canvas.setPalette(self.canvasPalette) self.setCanvas(self.canvas) #panning with the left mouse button self.panner = Qwt.QwtPlotPanner(self.canvas) #zoom in/out with the wheel self.magnifier = Qwt.QwtPlotMagnifier(self.canvas) self.magnifier.setMouseButton(Qt.NoButton) self.populate()
def __init__(self, parent): Qwt.QwtPlot.__init__(self, parent) self.setAutoFillBackground(True) self.setPalette(QPalette(Qt.white)) self.canvas().setPalette(QPalette(colours["LemonChiffon"])) self.setTitle("Bar Chart") self.setAxisTitle(Qwt.QwtPlot.yLeft, "Whatever") self.setAxisTitle(Qwt.QwtPlot.xBottom, "Whatever") self.d_barChartItem = Qwt.QwtPlotMultiBarChart("Bar Chart") self.d_barChartItem.setLayoutPolicy( Qwt.QwtPlotMultiBarChart.AutoAdjustSamples) self.d_barChartItem.setSpacing(20) self.d_barChartItem.setMargin(3) self.d_barChartItem.attach(self) self.insertLegend(Qwt.QwtLegend()) self.populate() self.setOrientation(0) self.setAutoReplot(True)
def __init__(self, parent=None): Qwt.QwtPlot.__init__(self, parent) self.setTitle("Watching TV during a weekend") canvas = Qwt.QwtPlotCanvas() canvas.setPalette(QPalette(Qt.gray)) canvas.setBorderRadius(10) self.setCanvas(canvas) self.plotLayout().setAlignCanvasToScales(True) self.setAxisTitle(Qwt.QwtPlot.yLeft, "Number of People") self.setAxisTitle(Qwt.QwtPlot.xBottom, "Number of Hours") legend = Qwt.QwtLegend() legend.setDefaultItemMode(Qwt.QwtLegendData.Checkable) self.insertLegend(legend, Qwt.QwtPlot.RightLegend) self.populate() #connect( legend, SIGNAL( checked( const QVariant &, bool, int ) ), SLOT( showItem( const QVariant &, bool ) ) ); legend.checked['QVariant', 'bool', 'int'].connect(self.showItem) self.replot() # creating the legend items self.items = self.itemList(Qwt.QwtPlotItem.Rtti_PlotHistogram) for i in range(len(self.items)): if (i == 0): #const QVariant itemInfo = self.itemToInfo(self.items[i]) #QwtLegendLabel * legendLabel = legend.legendWidget(itemInfo) if (legendLabel): legendLabel.setChecked(True) self.items[i].setVisible(True) else: self.items[i].setVisible(False) self.setAutoReplot(True)
def __init__(self, parent=None): Qwt.QwtPlot.__init__(self, parent) self.setAutoReplot(False) self.setTitle("Frequency Response of a Second-Order System") canvas = Qwt.QwtPlotCanvas() canvas.setBorderRadius(10) self.setCanvas(canvas) self.setCanvasBackground(QColor("MidnightBlue")) # legend legend = Qwt.QwtLegend() self.insertLegend(legend, Qwt.QwtPlot.BottomLegend) # grid grid = Qwt.QwtPlotGrid() grid.enableXMin(True) grid.setMajorPen(Qt.white, 0, Qt.DotLine) grid.setMinorPen(Qt.gray, 0, Qt.DotLine) grid.attach(self) # axes self.enableAxis(Qwt.QwtPlot.yRight) self.setAxisTitle(Qwt.QwtPlot.xBottom, "Normalized Frequency") self.setAxisTitle(Qwt.QwtPlot.yLeft, "Amplitude [dB]") self.setAxisTitle(Qwt.QwtPlot.yRight, "Phase [deg]") self.setAxisMaxMajor(Qwt.QwtPlot.xBottom, 6) self.setAxisMaxMinor(Qwt.QwtPlot.xBottom, 9) self.setAxisScaleEngine(Qwt.QwtPlot.xBottom, Qwt.QwtLogScaleEngine()) # curves self.d_curve1 = Qwt.QwtPlotCurve("Amplitude") self.d_curve1.setRenderHint(Qwt.QwtPlotItem.RenderAntialiased) self.d_curve1.setPen(Qt.yellow) self.d_curve1.setLegendAttribute(Qwt.QwtPlotCurve.LegendShowLine) self.d_curve1.setYAxis(Qwt.QwtPlot.yLeft) self.d_curve1.attach(self) self.d_curve2 = Qwt.QwtPlotCurve("Phase") self.d_curve2.setRenderHint(Qwt.QwtPlotItem.RenderAntialiased) self.d_curve2.setPen(Qt.cyan) self.d_curve2.setLegendAttribute(Qwt.QwtPlotCurve.LegendShowLine) self.d_curve2.setYAxis(Qwt.QwtPlot.yRight) self.d_curve2.attach(self) # marker self.d_marker1 = Qwt.QwtPlotMarker() self.d_marker1.setValue(0.0, 0.0) self.d_marker1.setLineStyle(Qwt.QwtPlotMarker.VLine) self.d_marker1.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) self.d_marker1.setLinePen(Qt.green, 0, Qt.DashDotLine) self.d_marker1.attach(self) self.d_marker2 = Qwt.QwtPlotMarker() self.d_marker2.setLineStyle(Qwt.QwtPlotMarker.HLine) self.d_marker2.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) self.d_marker2.setLinePen(QColor(200, 150, 0), 0, Qt.DashDotLine) self.d_marker2.setSymbol( Qwt.QwtSymbol(Qwt.QwtSymbol.Diamond, QColor(Qt.yellow), QColor(Qt.green), QSize(8, 8))) self.d_marker2.attach(self) self.setDamp(0) self.setAutoReplot(True)
# Tested for python3 Qt5 import sys #import Qwt from PyQt5 import Qwt import numpy as np from PyQt5.QtCore import Qt, QSize from PyQt5.QtGui import QBrush, QPen from PyQt5.QtWidgets import QApplication a = QApplication(sys.argv) plot=Qwt.QwtPlot() plot.setTitle("Plot Demo") plot.setCanvasBackground(Qt.white) plot.insertLegend( Qwt.QwtLegend() ) grid = Qwt.QwtPlotGrid() grid.attach( plot ) curve = Qwt.QwtPlotCurve() curve.setTitle("Some Points") curve.setPen(Qt.blue,4) curve.setRenderHint( Qwt.QwtPlotItem.RenderAntialiased, True ); symbol = Qwt.QwtSymbol( Qwt.QwtSymbol.Ellipse, QBrush( Qt.yellow ), QPen( Qt.red, 2 ), QSize( 8, 8 ) ); curve.setSymbol( symbol ) x=np.arange(0,10,0.1) y=np.sin(x) curve.setSamples(x,y) curve.attach(plot)