Commit Graph

232 Commits

Author SHA1 Message Date
Luke Campagnola
816069c020 All scipy imports in the library are now optional (need to test each of these changes)
Several examples still require scipy.
2014-03-11 10:11:03 -04:00
Luke Campagnola
00418e4921 Allow GLMeshItem to draw edges from MeshData with face-indexed vertexes. 2014-03-10 23:04:10 -04:00
Luke Campagnola
87ff0f314c Merge branch 'fix_finite_cache' into develop 2014-03-05 10:34:46 -05:00
Luke Campagnola
41c3d47d43 Correct GraphicsItem to use relative import of lru_cache
Update MultiPlotSpeedTest to test lru_cache performance
2014-03-05 10:25:55 -05:00
Luke Campagnola
7d32ef85be Added automatic image downsampling (disabled by default)
- Reduces aliasing when zoomed out
  - Improves performance and memory usage for large images
Merge branch 'image_downsampling' into develop

Conflicts:
	pyqtgraph/graphicsItems/ImageItem.py
2014-02-17 20:48:22 -05:00
Luke Campagnola
d45467e4cb Merge branch 'cylinder_mesh' into develop
Adds MeshData.cylinder
2014-02-11 10:12:40 -05:00
Luke Campagnola
5488f9ec84 Added BarGraphItem.shape() to allow better mouse interaction 2014-02-09 10:38:29 -05:00
Luke Campagnola
dc1af8946e Added a few new examples 2014-02-09 09:42:04 -05:00
Luke Campagnola
8730245990 Merge branch 'viewbox_limits' into develop
Adds ViewBox.setLimits method

Conflicts:
	examples/SimplePlot.py
2014-02-04 20:32:44 -05:00
Luke Campagnola
92d3b3fb94 cleanups 2014-02-02 10:45:32 -05:00
Luke Campagnola
96296749be Merge remote-tracking branch 'termim/master' into termim-fixes
ArrowItem: setStyle now combines new options with previously-set options.
AxisItem: fix minor exceptions
2014-02-02 10:43:29 -05:00
Luke Campagnola
ff232f4e3a Added cylinder geometry to opengl MeshData 2014-02-01 20:46:05 -05:00
Mikhail Terekhov
95bddca014 In ArrowItem allow individual parameter change through setStyle call. 2014-01-31 23:00:18 -05:00
Mikhail Terekhov
fe11e6c143 use examples directory for the output 2014-01-31 22:29:20 -05:00
Luke Campagnola
d0ed3ba245 Removed duplicate limit-setting arguments
Renamed args for clarity, improved documentation
Fixed interaction bugs
 - zooming works correctly when view is against limit
 - no more phantom target range; target is reset during mouse interaction.
2014-01-31 13:04:47 -05:00
Luke Campagnola
b0cafce3b4 Basic view limits appear to be working. 2014-01-30 10:50:07 -05:00
Luke Campagnola
5a1a663a50 MultiPlotWidget now uses scroll bar when plots do not fit in widget area. 2014-01-25 08:50:31 -05:00
Luke Campagnola
21639196d8 Fix imports in MultiPlotWidget and its example.
Merge remote-tracking branch 'termim/develop' into multiplotwidget-fix
2014-01-25 07:30:29 -05:00
Luke Campagnola
23779f004e - Fixed FillBetweenItem to force PlotCurveItem to generate path
- Added FillBetweenItem.setCurves()
- Added FillBetweenItem example
2014-01-23 10:34:26 -05:00
Mikhail Terekhov
baa6c4b82c Fix metaarray import in MultiPlotWidget.py example and MultiPlotItem.py 2014-01-20 22:15:14 -05:00
Luke Campagnola
eae32af0c7 Added symbol to Legend example 2014-01-18 23:30:03 -05:00
Luke Campagnola
6e5e35691c cleanups 2014-01-16 20:34:05 -05:00
Luke Campagnola
704f2f2048 Merge remote-tracking branch 'gpoulin/scatter_optim' into scatter-optim
Conflicts:
	pyqtgraph/functions.py
	pyqtgraph/graphicsItems/AxisItem.py
2014-01-15 00:11:05 -05:00
Luke Campagnola
4886270b53 PlotNode control widget now displays combo box to let user select plots to connect to
Flowchart example updated to use this feature.
2013-12-27 21:07:03 -05:00
Luke Campagnola
19be6959f3 Flowchart:
* Replaced dynamic imports with static
* Added NodeLibrary allowing multiple customized collections of Node types
2013-12-21 23:26:02 -05:00
Luke Campagnola
63f3b0ab6e Fix examples/hdf5.py to work properly with --test 2013-12-19 12:44:03 -05:00
Luke Campagnola
03c01d3b32 Fixes related to CSV exporter:
- CSV headers include data names, if available
  - Exporter correctly handles items with no data
  - pg.plot() avoids creating empty data item
  - removed call to reduce() from exporter; not available in python 3
  - Gave .name() methods to PlotDataItem, PlotCurveItem, and ScatterPlotItem
2013-12-19 12:30:00 -05:00
Luke Campagnola
a0b7e5a61c Corrected mouse clicking on PlotCurveItem - now uses stroke outline instead of path shape
Added 'width' argument to PlotCurveItem.setClickable()
2013-12-19 09:56:58 -05:00
Luke Campagnola
4e9e75817f Added Qt.loadUiType function for PySide
Added example of simple Designer usage.
2013-12-17 21:23:37 -05:00
Antony Lee
a9b1fd9079 Some Python3 related fixes. 2013-12-16 15:02:26 -08:00
Luke Campagnola
bc7bc29740 Added HDF5 file to demonstrate dynamically plotting a subset of a very large dataset
* Loads only data that is currently visible
 * Downsamples to avoid plotting too many samples
 * Loads data in chunks to limit memory usage during downsampling
2013-12-08 12:47:04 -05:00
Luke Campagnola
6e74df28a0 Merge branch 'dont-copy-context-menu' into develop
This allows ViewBox context menus to be modified by directly manipulating ViewBox.menu
2013-11-21 23:38:44 -05:00
Luke Campagnola
5b905cde8b Override ViewBox.popup() to update menu before showing
Extend ViewBox menu in examples/contextMenu
2013-11-19 07:46:17 -05:00
Luke Campagnola
1418358bfb Fixed RemoteGraphicsView passing mouse events on python3 + pyside 2013-11-17 14:12:00 -05:00
Luke Campagnola
1e82104986 Fixed running python examples --test for python3; needs to be tested under windows. 2013-11-16 21:51:55 -05:00
Luke Campagnola
8d7ab108fd Fixed PySide issues by removing itemChange methods from GraphicsWidget and ViewBox;
Workaround is for ViewBox to see whether its scene has changed every time it paints.

Fixes: 12
2013-11-16 20:23:41 -05:00
Luke Campagnola
31928e70a5 Bugfixes:
- GraphicsView.render now correctly invokes GraphicsScene.prepareForPaint
 - Fixed RemoteGraphicsView renderer to use new PyQt QImage API.
 - multiprocess.Process now pipes stdout/err directly to console when in debugging mode
2013-11-06 23:14:27 -05:00
Luke Campagnola
96a4ff7cd5 Fixes:
- ROI updates on sigTransformChanged
  - ViewBox is more careful about accepting all auto-range changes up to the point it is disabled, even if the auto-range calculation is deferred.
2013-11-04 22:07:43 -05:00
Guillaume Poulin
3a9258e35e Correct comment in examples/ScatterPlot.py 2013-09-20 16:46:33 +08:00
Luke Campagnola
881589468d Python 3 bugfixes 2013-09-10 00:31:43 -04:00
Luke Campagnola
f997b3079b Added GLBarGraphItem example
GLMeshItem accepts ShaderProgram or name of predefined program
Added missing documentation to GLGraphicsItem
minor edits
2013-09-06 15:36:36 -04:00
Guillaume Poulin
c02e6184ef merge inp 2013-09-05 00:28:03 +08:00
Luke Campagnola
46901ae83a ListParameter bugfix: allow unhashable types as parameter values. 2013-07-12 13:14:09 -04:00
Luke Campagnola
7cd3e663f9 experimental GL video widget
temporary fix for text parameter ignoring expanded option
Don't use os.EX_OK in pg.exit()
2013-07-10 00:02:16 -04:00
Guillaume Poulin
f2d0991102 Minor fixes for py3k 2013-07-04 05:52:16 +08:00
Luke Campagnola
ba56899a36 Added basic wireframe mesh drawing 2013-05-29 14:33:14 -04:00
Luke Campagnola
671e624f17 Fixes:
AxisItem correctly handles scaling with values that are not power of 10
Can remove items from legend
updated plotItem setLogMode to allow unspecified axes
2013-05-09 23:02:14 -04:00
Luke Campagnola
e0e1123d33 fixed import statements python3 compatibility
PolyLineROI.getArrayRegion correctly applies mask to N-dimensional data
fixed multiprocess for python2.6 compatibility
2013-04-29 08:13:28 -04:00
Luke Campagnola
1a0b5921df remotegraphicsview fix for PyQt 4.10 2013-04-07 16:18:58 -04:00
Luke Campagnola
fde4267ccc Corrected use of setGLOptions for image, axis, and box 2013-04-07 09:16:21 -04:00
Luke Campagnola
09bc17bdb5 Fixed GLLinePlotItem line width option
Added antialiasing to GL line items
2013-03-30 22:39:11 -04:00
Luke Campagnola
dbc8fe423b merged with inp 2013-03-26 13:48:14 -04:00
Luke Campagnola
8828892e55 merged many changes from acq4 2013-03-26 13:46:26 -04:00
Luke Campagnola
ff59924ee0 fixed mouse scaling issue introduced in inp a few commits ago
added panning plot example
2013-03-19 21:22:23 -04:00
Luke Campagnola
f029e7893e merged with inp 2013-03-19 16:05:32 -04:00
Luke Campagnola
cefb4f9828 merged updates from acq4 2013-03-19 16:04:46 -04:00
Luke Campagnola
4716a84117 AxisItem bugfix: corrected x-linked view update behavior
Added MultiplePlotAxes example
2013-03-19 11:49:10 -04:00
Luke Campagnola
2f510de2ca Added PolyLineROI.getArrayRegion 2013-03-13 17:17:39 -04:00
Luke Campagnola
db5c303fad TableWidget updates:
- Made numerically sortable
  - Added setEditable method
  - Added example
2013-03-06 06:27:24 -05:00
Luke Campagnola
262d4bf53f bugfix: examples working in PyQt 4.9.6 (workaround for API change) 2013-03-04 23:29:22 -05:00
Luke Campagnola
a59f4c206a Fixed example testing on windows 2013-02-25 14:03:33 -05:00
Luke Campagnola
4cf9ef70ba Fixed modified example code execution 2013-02-25 13:45:24 -05:00
Luke Campagnola
475006f508 example loader allows editing code
Workaround for PySide bug; fixes GradientEditorItem
2013-02-25 13:03:21 -05:00
Luke Campagnola
491aee0fe2 python3 fixes
cleaned up examples
2013-02-24 23:09:03 -05:00
Luke Campagnola
412e1d2ec8 doc updates
ViewBox: made padding more consistent for all auto-ranging methods, deprecated autoRange(item=) in favor of autoRange(items=)
2013-02-20 11:13:50 -05:00
Luke Campagnola
815746895d Fixed GLSurfacePlot bug 2013-02-13 17:11:47 -05:00
Luke Campagnola
63c3b36a03 added a few examples 2013-02-13 13:00:50 -05:00
Luke Campagnola
9f55a27fdd More boundingRect / dataBounds bugfixes 2013-02-12 21:44:42 -05:00
Luke Campagnola
93a5753f5d Fixed auto ranging for scatter plots 2013-02-12 19:15:45 -05:00
Luke Campagnola
a80f150b86 merge with inp 2013-02-11 21:47:00 -05:00
Luke Campagnola
4cec9ff044 Added ErrorBarItem to repository 2013-02-11 21:45:41 -05:00
Luke Campagnola
22bc2333a8 bugfixes 2013-02-10 21:04:00 -05:00
Luke Campagnola
4c887c8f50 Merge new fixes and features from acq4 2013-02-10 14:10:30 -05:00
Luke Campagnola
ee21e2d054 fixed scatterplotitem segfault
added graphitem
2013-01-30 15:56:08 -05:00
Luke Campagnola
c5dd0f4f63 Fixed print statements for python 3 2013-01-12 14:35:32 -05:00
Luke Campagnola
6903886b3a Fixes against previous commits:
- fixed example testing script
 - Added finer axis ticks back in some instances
 - fixed improper bounds caching in log/fft mode
 - fixed exception handling in remoteproxy
2013-01-11 20:21:11 -05:00
Luke Campagnola
513e904a59 Improved performance for remote plotting:
- reduced cost of transferring arrays between processes (pickle is too slow)
  - avoid unnecessary synchronous calls

Added RemoteSpeedTest example
2013-01-10 16:10:27 -05:00
Luke Campagnola
5249c6794e examples fix -- prevent adding invalid entry to sys.path while searching for pyqtgraph
added script for generating debian changelog from bzr log
2012-12-29 21:51:29 -05:00
Luke Campagnola
5786a627b5 Added deprecation warning for Node.__getattr__
Expanded flowchart.Node docstrings
Added custom node example
2013-01-04 12:05:36 -05:00
Luke Campagnola
19d7bc5605 bugfixes for new package structure 2012-12-27 04:35:23 +00:00
Luke Campagnola
45048467b3 - Major reorganization; we now follow the standard python package structure.
- Overhaul of SVG export system. Seems to work well.
- Fixed image export bugs
- Added basic 3D line plot class
2012-12-26 17:51:52 -05:00
Luke Campagnola
51b0ba0877 added line plot example to menu 2012-12-26 15:26:04 -05:00
Luke Campagnola
5374afeca8 Added basic 3D line plot class 2012-12-26 15:22:44 -05:00
Luke Campagnola
51e88bd436 SVG export fixes 2012-12-26 13:48:12 -05:00
Luke Campagnola
af59296231 Reorganized directory structure to be more standard
Started new SVG exporter
Merged updates from ACQ4
2012-12-25 00:43:31 -05:00
Luke Campagnola
a157d9c4fa Added better API for controlling antialiasing in plots
PlotItem auto-range button is now hidden by default; only appears for plots that are not already auto-ranged and have mouse hover.
2012-12-23 00:51:28 -05:00
Luke Campagnola
b25e34f564 Features:
- Canvas: added per-item context menus
- Isocurve: 
     option to extend curves to array boundaries
     option to generate QPainterPath instead of vertex array
- Isosurface is a bajillion times faster
- ViewBox
     added clear() method
     added locate(item) method (shows where an item is for debugging)

Bugfixes:
- automated example testing working properly
- Exporter gets incorrect source rect when operating on PlotWidget
- Set correct DPI and size for SVG exporter
- GLMeshItem works properly with whole-mesh color specified as sequence
- bugfix in functions.transformCoordinates for rotated matrices
- reload library checks for modules that are imported multiple times
- GraphicsObject, UIGraphicsItem: added workaround for PyQt / itemChange bug
- ScatterPlotItem: disable cached render during export

Other:
- added documentation for several functions
- minor updates to setup.py
2012-12-22 16:51:25 -05:00
Luke Campagnola
ecca8855df - ScatterPlotItem disables render cache during export
- Fixes for SVG exporter
- functions.isosurface() is a bazillion times faster (API change: return value format has changed)
2012-12-22 15:16:38 -05:00
Luke Campagnola
3de5719011 Merged testing code from Kratz
Numerous fixes for python 3 compatibility
2012-12-05 00:25:45 -05:00
Megan Kratz
c8123fefaa added primitive test capability to run through all examples - works but needs to be refined to make it better
-- to run the tests simply run "python pyqtgraph/examples --test"
2012-11-29 16:50:42 -05:00
Megan Kratz
70fde35e3b merge from Luke 2012-11-27 14:56:02 -05:00
Megan Kratz
dde6a2ac4c work on DateAxisItem 2012-11-27 14:54:49 -05:00
Luke Campagnola
aca9c8310f Major overhaul for GLMeshItem, MeshData classes
[ Note: These APIs have changed significantly. ]
  - MeshData and GLMeshItem now operate on numpy arrays instead of lists.
  - MeshData can handle per-vertex and per-triangle color information
Added GLSurfacePlotItem class based on new GLMeshItem
GLGraphicsItem now has per-item support for customizing GL state (setGLOptions method)
Added several new shader programs
Added new examples:
   GLIsosurface
   GLSurfacePlot
   GLshaders
2012-11-23 17:34:22 -05:00
Luke Campagnola
9b41c90034 New features for LegendItem:
- Can be anchored to parent item at any location
  - Support for filled plot styles
  - Automatically resizes to fit contents
  - PlotItem can auto-generate legend
2012-11-23 16:05:14 -05:00
Luke Campagnola
e5f383fbb5 Bugfixes and updates to functions.py:
- generalized makeARGB API: can now process arrays of arbitrary shape.
  - affineSlice automatically converts vector arguments to array
  - new function applyLookupTable taken from makeARGB
  - isosurface function returns array
Updated VideoSpeedTest example to follow new makeARGB API

LayoutWidget: row argument now accepts 'next' as value
ParameterTree bugfix: avoid infinite recursion when accessing non-existent attributes
ViewBox: avoid exit error caused when cleanup callback is invoked while python is shutting down
2012-11-23 16:01:25 -05:00
Megan Kratz
2ca4cddff7 merge from luke 2012-11-10 11:27:33 -05:00
Megan Kratz
af5a5d3eb3 Start of work on DateAxis 2012-11-10 11:22:56 -05:00
Luke Campagnola
eab1d75592 ROI updates:
- ROI.movePoint now expects parent coordinates by default
   - Added ROI.getHandles()
   - Renamed MultiLineROI to MultiRectROI
   - Reorganized MultiRectROI, added addSegment and removeSegment methods (thanks Martin!)
2012-10-31 02:01:55 -04:00
Luke Campagnola
b09182d19a GLScatterPlotItem: use shader programs to allow specifying spot size by array
Reorganized shader programs
Infrastructure updates for OpenGL system
2012-10-26 21:47:45 -04:00
Luke Campagnola
450626a3bb Fixes for PySide compatibility 2012-10-26 08:55:53 -04:00