My way is to calculate data in one thread, and everything about pyqtgraph (and qt) to process in other one.
On Tue, Feb 28, 2017 at 8:17 PM, Paul Gross <[email protected]> wrote: > Hi, I am working on displaying real-time telemetry data using pyqtgraph. I > am quite pleased with the visual results however I am having issues with > the frame rate dropping as more data is plotted. I am receiving about 100 > data points per second. At the beginning plotting is quite fast but the > frame right dives rapidly as more data is being displayed. > > > I have fixed the size of the plots and auto-ranging is disabled, I have > tried down sampling and it helps, but not quite enough. I am looking for > the fastest way to plot a large amount of data points in real-time, as I > receive them. > > > I have found other posts about speed and some of them reference > ‘arrayToQPath’, but I am not sure if that is the best way to approach my > issue. My biggest concern is with plotting the data points as quickly as > possible as to not slow down the rest of the event loop. The current way > that I am plotting data in the ‘PlotWidget’ is setting the data of a > ‘PlotDataItem’ in the following manner, where the arguments are either a > numpy array or python list: > ‘plot_data_item.curve.setData(data['time'][self.x_min:], > data[data_type][self.x_min:])’. I have tried plotting a new curve each > time, but that seemed to be quite slow. In an ideal world I would just be > able to append points without having to connect all of the previous points > to each other. At some point I want to reset the plot to an empty plot, > but that really isn’t an issue because this is a rare occurrence in my > program. I simply want to display in real time several minutes of data with > multiple different plots, each of fixed size with no scrolling, panning, or > auto-resizing. > > I would not be opposed to threading some of the work out if that is an > option on top of any suggestions you have. Something I am not entirely > clear on is if the GIL is an issue when it comes to QThreads since they are > C++? Will I get any performance boost by using QThreads in the update > function? I am reading from a data queue in the update function, so ideally > that would be taken out of the loop. That however isn’t my main concern > because if I reset the plots (change the range of data that is taken from > my data list/array the frame right jumps right back up). > > > I am using the Dev Branch because my application requires PYQt5 and python > 3.5. > > Any suggestions you have would be greatly appreciated! > > -- > You received this message because you are subscribed to the Google Groups > "pyqtgraph" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/pyqtgraph/4e08f9bc-4380-4d08-9148-755463f2e976%40googlegroups.com > <https://groups.google.com/d/msgid/pyqtgraph/4e08f9bc-4380-4d08-9148-755463f2e976%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "pyqtgraph" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/CAD_qyJoN%3D0GPmr7q1wmxobXswe8HBEqE9X08FJnNzinXoMkkeA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
