def drawD2(self): if self.vtkViewer.reader == None: return num = self.inputD2.text() try: num = list(map(int, num.split(' '))) except Exception: return if len(num) != 2 or num[0] <= 1 or num[1] <= 1: return self.clear() histogram, scale = self.vtkViewer.d2Sample(num[0], num[1]) d2Chart = QChart() d2Chart.legend().hide() polyline = QPolygonF(num[0]) pointer = polyline.data() dtype, tinfo = np.float, np.finfo pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(num[0]-1)*2+1:2] = scale memory[1:(num[0]-1)*2+2:2] = histogram curve = QLineSeries() curve.append(polyline) d2Chart.addSeries(curve) d2Chart.createDefaultAxes() ChartView = QChartView(d2Chart) self.d2ChartLayout.addWidget(ChartView)
def series_to_polyline(xdata, ydata): size = len(xdata) polyline = QPolygonF(size) pointer = polyline.data() dtype, tinfo = np.float, np.finfo # integers: = np.int, np.iinfo pointer.setsize(2 * polyline.size() * tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(size - 1) * 2 + 1:2] = xdata memory[1:(size - 1) * 2 + 2:2] = ydata return polyline
def series_to_polyline(xdata, ydata): #inspired from https://github.com/PierreRaybaut/plotpy/wiki/Using-Qt-Charts-(PyQtChart)-to-plot-curves-efficiently-in-Python! size = len(xdata) polyline = QPolygonF(size) pointer = polyline.data() dtype, tinfo = np.float, np.finfo # integers: = np.int, np.iinfo pointer.setsize(2 * polyline.size() * tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(size - 1) * 2 + 1:2] = xdata memory[1:(size - 1) * 2 + 2:2] = ydata return polyline
def series_to_polyline(xdata, ydata): """Convert series data to QPolygon(F) polyline This code is derived from PythonQwt's function named `qwt.plot_curve.series_to_polyline`""" size = len(xdata) polyline = QPolygonF(size) pointer = polyline.data() dtype, tinfo = np.float, np.finfo # integers: = np.int, np.iinfo pointer.setsize(2 * polyline.size() * tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(size - 1) * 2 + 1:2] = xdata memory[1:(size - 1) * 2 + 2:2] = ydata return polyline
def series_to_polyline(self, xdata, ydata): #convert plot data for Qt """Convert series data to QPolygon(F) polyline This code is derived from PythonQwt's function named `qwt.plot_curve.series_to_polyline`""" xsize = len(xdata) ysize = len(ydata) if xsize != ysize: root = Tk() root.withdraw() messagebox.showinfo("Live Plot Error!", "Check force file/video file\n" + \ "Exception: x axis and y axis array sizes don't match") root.destroy() self.playStatus = False polyline = QPolygonF(xsize) pointer = polyline.data() dtype, tinfo = np.float, np.finfo # integers: = np.int, np.iinfo pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(xsize-1)*2+1:2] = xdata memory[1:(ysize-1)*2+2:2] = ydata return polyline
def series_to_polyline(xdata, ydata): """Convert series data to QPolygon(F) polyline This code is derived from PythonQwt's function named `qwt.plot_curve.series_to_polyline`""" size = len(xdata) dtype = np.float tinfo = np.finfo dtypesize = tinfo(dtype).dtype.itemsize polyline = QPolygonF(size) polyline_size = polyline.size() pointer = polyline.data() pointer_size = 2 * polyline_size * dtypesize pointer.setsize(pointer_size) memory = np.frombuffer(pointer, dtype) memory[:(size - 1) * 2 + 1:2] = xdata.T memory[1:(size - 1) * 2 + 2:2] = ydata.T return polyline