3af23725ca
* Added hovering demo to ScatterPlot example * Use Qt's serialization for SymbolAtlas.symbolMap keys Yields significant performance improvements when updating the scatter plot's options. See e.g. the plot hover example. * Further optimized scatter plot picking * Fix ScatterPlot example tool tip * Clean up while I'm here * Compatibility * Some simple optimizations for ScatterPlotItem Speedups for ScatterPlotSpeedTest.py: ~50% without pxMode ~ 0% pxMode with useCache ~30% pxMode without useCache * ~3x speedup in scatter plot speed test with pxMode * More optimization low-hanging fruit for the scatter plot * Removed hover example to lazily pass tests * Avoid segfault * Re-add hover example to ScatterPlot.py * Switch to id-based keying for scatter plot symbol atlas - Use cases exist where serialization-based keying is a significant bottleneck, e.g. updating without atlas invalidation when a large variety pens or brushes are present. - To avoid a performance hit, the onus is on the user to carefully reuse pen and brush objects. * Optimized caching in scatter plot hovering example * Fixed and optimized scatter plot hovering example * Minor scatter plot optimization * Cleanup * Store hovered points in a set for the hovering example * Keep a limited number symbol atlas entries around for future reuse * Added a docstring note to remind the user to reuse QPen and QBrush objects for better performance * Tidied up hovering example * Typo * Avoid unnecessary atlas rebuilds * Refactored SymbolAtlas * Efficient appending to SymbolAtlas * SymbolAtlas rewrite * Cleanup and profiling * Add randomized brushes to speed test * Add loc indexer to ScatterPlotItem * Profile ScatterPlotItem.paint to identify bottlenecks * Reuse targetRect to improve paint performance * Readability improvements (opinionated) * Only need to set x and y of targetRect - w and h can stay set to 0 (not entirely sure why) - this is a bit faster than setting all of x, y, w, h * Minor renaming * Strip off API changes and leave to another PR * Renaming * Compatibility * Use drawPixmap(x, y, pm, sx, sy, sw, sh) signature to avoid needing to update QRectFs * Use different drawing approaches for each Qt binding for performance reasons * Fix a bug introduced two commits ago Incidentally, I think there is a similar bug in the main branch currently. * Minor performance and readability improvements * Strip out source and target QRectF stuff * Bring source and target QRectF stuff back in a less coupled way * Leave deprecating getSpotOpts for another PR * Compatibility fix * Added docstrings and use SymbolAtlas__len__ where possible * Fix export issue * Add missing import * Add deprecation warnings * Avoid using deprecated methods * Fix and cleanup max spot size measurements * Make creation of style opts entries explicit * Add hovering API to ScatterPlotItem * Compatibility * Marshal pen and brush lists in setPen and setBrush * Fixed platform dependent bug |
||
---|---|---|
.. | ||
cx_freeze | ||
optics | ||
py2exe | ||
relativity | ||
verlet_chain | ||
__init__.py | ||
__main__.py | ||
Arrow.py | ||
BarGraphItem.py | ||
beeswarm.py | ||
CLIexample.py | ||
ColorButton.py | ||
ConsoleWidget.py | ||
contextMenu.py | ||
crosshair.py | ||
customGraphicsItem.py | ||
CustomGraphItem.py | ||
customPlot.py | ||
DataSlicing.py | ||
DataTreeWidget.py | ||
DateAxisItem_QtDesigner.py | ||
DateAxisItem_QtDesigner.ui | ||
DateAxisItem.py | ||
designerExample_pyside2.py | ||
designerExample.py | ||
designerExample.ui | ||
DiffTreeWidget.py | ||
dockarea.py | ||
Draw.py | ||
ErrorBarItem.py | ||
ExampleApp.py | ||
exampleLoaderTemplate_pyqt5.py | ||
exampleLoaderTemplate_pyqt.py | ||
exampleLoaderTemplate_pyside2.py | ||
exampleLoaderTemplate_pyside.py | ||
exampleLoaderTemplate.ui | ||
FillBetweenItem.py | ||
Flowchart.py | ||
FlowchartCustomNode.py | ||
fractal.py | ||
GLBarGraphItem.py | ||
GLImageItem.py | ||
GLIsosurface.py | ||
GLLinePlotItem.py | ||
GLMeshItem.py | ||
GLScatterPlotItem.py | ||
GLshaders.py | ||
GLSurfacePlot.py | ||
GLViewWidget.py | ||
GLVolumeItem.py | ||
GradientEditor.py | ||
GradientWidget.py | ||
GraphicsLayout.py | ||
GraphicsScene.py | ||
GraphItem.py | ||
hdf5.py | ||
histogram.py | ||
HistogramLUT.py | ||
imageAnalysis.py | ||
ImageItem.py | ||
ImageView.py | ||
infiniteline_performance.py | ||
InfiniteLine.py | ||
initExample.py | ||
isocurve.py | ||
JoystickButton.py | ||
Legend.py | ||
linkedViews.py | ||
logAxis.py | ||
LogPlotTest.py | ||
MouseSelection.py | ||
MultiplePlotAxes.py | ||
multiplePlotSpeedTest.py | ||
MultiPlotSpeedTest.py | ||
MultiPlotWidget.py | ||
multiprocess.py | ||
optics_demos.py | ||
PanningPlot.py | ||
parallelize.py | ||
parametertree.py | ||
PColorMeshItem.py | ||
PlotAutoRange.py | ||
PlotSpeedTest.py | ||
Plotting.py | ||
PlotWidget.py | ||
ProgressDialog.py | ||
relativity_demo.py | ||
RemoteGraphicsView.py | ||
RemoteSpeedTest.py | ||
ROIExamples.py | ||
ROItypes.py | ||
ScaleBar.py | ||
ScatterPlot.py | ||
ScatterPlotSpeedTest.py | ||
ScatterPlotSpeedTestTemplate_pyqt5.py | ||
ScatterPlotSpeedTestTemplate_pyqt.py | ||
ScatterPlotSpeedTestTemplate_pyside2.py | ||
ScatterPlotSpeedTestTemplate_pyside.py | ||
ScatterPlotSpeedTestTemplate.ui | ||
ScatterPlotWidget.py | ||
scrollingPlots.py | ||
SimplePlot.py | ||
SpinBox.py | ||
Symbols.py | ||
syntax.py | ||
TableWidget.py | ||
template.py | ||
test_ExampleApp.py | ||
test_examples.py | ||
text.py | ||
TreeWidget.py | ||
utils.py | ||
verlet_chain_demo.py | ||
VideoSpeedTest.py | ||
VideoTemplate_pyqt5.py | ||
VideoTemplate_pyqt.py | ||
VideoTemplate_pyside2.py | ||
VideoTemplate_pyside.py | ||
VideoTemplate.ui | ||
ViewBox.py | ||
ViewBoxFeatures.py | ||
ViewLimits.py |