Commit Graph

46 Commits

Author SHA1 Message Date
Mikhail Terekhov
471d7415ee PlotCurveItem.dataBounds: more checks for empty range 2020-07-27 15:50:34 -04:00
Mikhail Terekhov
1ad3eacb78 PlotCurveItem.boundingRect: check for None returned from self.dataBounds 2020-07-27 15:50:26 -04:00
Luke Campagnola
b031a0a235 Revert changes from 18999c - these incorrectly change the API.
Also tidy up a little
2020-07-18 23:41:35 -07:00
Dennis van Gils
603e1b98bc Fix line width not being set 2020-07-16 21:13:33 +02:00
Ogi Moore
1fe3731ec2
Merge branch 'master' into develop 2020-06-22 20:37:55 -07:00
Kenneth Lyons
352a8a425a Add mouse event to PlotCurveItem sigClicked signature 2020-06-19 23:00:02 -07:00
Ogi
2e8dce2fc2 Emit the event with sigClicked in PlotCurveItem 2020-06-10 20:08:34 -07:00
Maxim Millen
14075e6223
Added support for plot curve to handle both fill and connect args. (#1188) 2020-05-10 08:42:04 -07:00
2xB
71636e3518 Fix: Update axes after data is set 2020-04-08 17:11:20 +02:00
Daniel Hrisca
15a1f5af94 improve performance of updateData PlotCurveItem (saves about 2us per call) (#1079)
* improve performance of updateData PlotCurveItem (saves about 2us per call)
2019-11-19 08:14:53 -08:00
Agamemnon Krasoulis
f2740f7e69 Fix typo in documentation (#1062) 2019-10-22 09:45:45 -07:00
Kenneth Lyons
b7f1aa88cd Cast to int after division 2019-09-22 17:03:30 -07:00
2xB
05aa3e9393 Add 'fillOutline' option to draw an outline around a filled area (#999) 2019-08-17 09:57:40 -07:00
fake-name
8fa6410382 Moar dumb typos. I managed to totally bugger up the rebase. 2019-06-24 14:14:04 -07:00
fake-name
14925b7fe3 Gah, forgot to add this. 2019-06-24 14:11:54 -07:00
fake-name
3f71276ac3 Fix more mkPen invocations that got added for some reason. 2019-06-24 14:02:19 -07:00
fake-name
18999c2ca1 Consolidate to simpler get is not none check. 2019-06-24 14:01:53 -07:00
Connor Wolf
17e90af36c Avoid constructing shadow pens when no shadow pen is set
Basically, profiling has pointed me to the fact that a fair bit of code time is spent in `setShadowPen()` (actually, it's in `mkPen()`, which `setShadowPen()` calls), even when no shadow pen is specified.

In my application, I'm calling `pyqtgraph.PlotDataItem.setdata()`, which calls through PlotDataItem->setData, PlotDataItem->updateItems. At some point in the call stack, the default value for `shadowPen` is being inserted into the kwargs, which then causes the specious calling of setShadowPen.

Anyways, if we check if shadowPen is a value other then none, this doesn't happen.
2019-06-24 14:01:17 -07:00
Daniel Hrisca
297e1d95a5 avoid double call to mkPen when creating PlotCurveItem objects (#817)
* avoid double call to mkPen when creating PlotCurveItem objects

* avoid unnecessary calls to mkPen in paint
2019-06-23 17:30:40 -07:00
SamSchott
1b6537b241 Curve fill: draw line around patch (#922) 2019-06-23 17:07:55 -07:00
Luke Campagnola
e885236bd5 Add PlotCurveItem composition mode 2017-09-28 08:57:42 -07:00
Luke Campagnola
d343eb044d Fix errors getting bounds on nanny data 2017-07-14 15:10:16 -07:00
Luke Campagnola
f2a72bf780 Image tester is working 2016-02-12 03:03:52 -08:00
Luke Campagnola
01d629396a Catch overflows from Point.length()
Merge branch 'release-0.9.8.1' into develop
2014-04-03 13:15:55 -04:00
Luke Campagnola
6b66edfd46 Added Travis CI support
Fixed bugs / style issues to please Lord Travis

Squashed commit of the following:

commit f25048a1e1
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Sun Mar 30 02:40:47 2014 -0400

    syntax

commit cc8b69695a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Sun Mar 30 02:36:49 2014 -0400

    add size check, diff style check

commit 5d5ea065a4
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Sun Mar 30 02:16:05 2014 -0400

    travis fix

commit b154c6d997
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Sun Mar 30 02:09:41 2014 -0400

    travis, flake colored output

commit 46921dcd87
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Mar 26 12:37:54 2014 -0400

    fix pyside+py3 bugs to satisfy CI

commit 1d30f3c5c7
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Mar 26 11:13:18 2014 -0400

    fix py3 tests

commit 426578fa4c
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Mar 26 07:39:19 2014 -0400

    fix pytest install

commit 88a13c1a71
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Mar 26 00:29:29 2014 -0400

    qt5 updates

commit 51995488cc
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Mar 26 00:16:04 2014 -0400

    correct py.test command for py3

commit e2b02fbcbd
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 23:50:38 2014 -0400

    fix 2nd install test

commit 4b3e3ee04a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 23:31:31 2014 -0400

    syntax error

commit 250eabdb34
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 23:13:42 2014 -0400

    look for py.test3

commit 9f9bca47c1
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 22:54:19 2014 -0400

    fix syntax

commit 0a871c6f36
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 22:47:58 2014 -0400

    output pip build log

commit dbce58d8cd
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 22:38:55 2014 -0400

    no comments allowed between shall lines

commit b79c06121d
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 20:56:35 2014 -0400

    another pip try

commit 09f4f5d82a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 13:36:09 2014 -0400

    pip correction

commit 0eedb5c18e
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 13:29:00 2014 -0400

    correct py version output

commit d9fd039be2
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 11:55:43 2014 -0400

    apt checks

commit cf95ccef86
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Tue Mar 25 10:23:10 2014 -0400

    alternate pip install method

commit bee0bcddfe
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:51:45 2014 -0400

    correct deps install

commit 963a4211fc
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:47:30 2014 -0400

    fixes

commit 0c86cd1dc2
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:31:06 2014 -0400

    permission fix

commit 5d04ef53b8
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:30:19 2014 -0400

    Fix py.test version selection

commit b0e6c7cb94
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:25:34 2014 -0400

    try another pyqt5 install method

commit 422a792866
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:12:36 2014 -0400

    syntax error

commit 533133905a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 23:04:37 2014 -0400

    fixes

commit 8d65211ba4
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 22:40:18 2014 -0400

    Add Qt5 test
    minor fixes

commit 4484efaefe
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 22:31:56 2014 -0400

    use correct py.test for python version

commit 5d2441a29b
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 22:24:27 2014 -0400

    add setup tests

commit 9291db64f2
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 21:48:43 2014 -0400

    fix py3-pyqt install

commit a7aa675c5a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 21:31:33 2014 -0400

    travis tests

commit e71cd2b23a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 21:17:15 2014 -0400

    more corrections

commit 527df3bca8
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 20:56:01 2014 -0400

    travis corrections

commit 87d65cac4a
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 20:48:02 2014 -0400

    Add flake tests
    Correct style in a few files to please Lord Travis

commit 537028f88f
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 17:36:24 2014 -0400

    minimize pyside package install
    correct line endings to satisfy Lord Travis

commit 1e3cc95e37
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 17:23:03 2014 -0400

    enable pyside, line ending check
    fix test

commit d7df4517f9
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 17:12:06 2014 -0400

    syntax fix

commit 1ad77a2155
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 17:00:30 2014 -0400

    alt. pytest install

commit 5edcc02072
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Mon Mar 24 16:52:33 2014 -0400

    Added initial travis.yml
2014-03-30 02:51:32 -04:00
Luke Campagnola
95dd56bdb6 Bugfixes:
- fixed PlotCurveItem generating exceptions when data has length=0
- fixed ImageView.setImage only working once
2014-01-01 20:22:13 -05:00
Luke Campagnola
f630734453 Switching to relative imports to allow pyqtgraph to be imported under other names.
finished top-level files and graphicsItems
2013-12-22 02:08:39 -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
Antony Lee
f136b33033 Profilers controllable via PYQTGRAPHPROFILE.
A new function profiling system is implemented.  Most importantly, this
allows one to profile various internal functions directly by setting the
`PYQTGRAPHPROFILE` environment variable to a comma separated list of
function and method names, e.g.

    PYQTGRAPHPROFILE=functions.makeARGB,ImageItem.render \
        python -mexamples

Specifically, items in `PYQTGRAPHPROFILE` must be of the form
`classname.methodname` or `dotted_module_name.functionname`, with the
initial "pyqtgraph." stripped from the dotted module name.

Moreover, the overhead of inactive profilers has been kept minimal: an
introspective check of the caller's name (only if `PYQTGRAPHPROFILE` is
set) and a trivial function (not method) call per profiler call.

The new profilers rely on `sys._getframe` to find the caller's name,
although the previous system (passing the caller's name explicitely)
could certainly have been kept instead.

Finally the API of profilers has been changed: register a
profiling point simply by calling the profiler, and profilers are
automatically flushed on garbage collection.  See the docstring of
`pyqtgraph.debug.Profiler` for more details.
2013-11-27 09:57:46 -08:00
Luke Campagnola
4486272737 Catch OverflowError from Point.length() 2013-11-25 01:16:21 -05:00
Luke Campagnola
f05c10a80f removed unnecessary scipy import 2013-11-21 09:57:56 -05:00
Antony Lee
dac7eb5817 Faster import of PyQtGraph.
* RawImageWidget (and thus OpenGL) isn't imported by default anymore.
* scipy.stats.scoreatpercentile is replaced by numpy.percentile.

This commit has not been tested as the example runner is currently
broken.
2013-11-15 11:00:12 -08:00
Luke Campagnola
58048a703c - Removed inf/nan checking from PlotDataItem and PlotCurveItem; improved performance
- Added 'connect' option to PlotDataItem and PlotCurveItem to affect which line segments are drawn
- arrayToQPath() added 'finite' connection mode which omits non-finite values from connections
2013-09-13 03:27:26 -04:00
Luke Campagnola
79bd7ea187 documentation, bugfix 2013-08-04 14:36:14 -04:00
Luke Campagnola
6e253e409b merge from acq4:
- Support for dynamic downsampling and view clipping in PlotDataItem / PlotItem
  - fixed __truediv__ handling
  - ViewBox updates to fix aspect locking (still broken)
  - AxisItem tries to be more clever about when to display tick text
  - Fix segmentation fault caused by exception inside GraphicsItem.paint()
  - Added 'x' scatter plot symbol
  - pg.mkPen supports dashes
2013-07-03 11:36:07 -04:00
Luke Campagnola
8c13a3e7e3 copy from acq4 2013-07-03 11:20:49 -04:00
Luke Campagnola
f03703e78f corrected exception error message 2013-06-20 08:44:46 -04:00
Luke Campagnola
ad20103ccc Check for length=0 arrays when using autoVisible 2013-03-17 14:26:23 -04:00
Luke Campagnola
2980f8335c bugfix: ignore inf and nan when auto-ranging
added experimental opengl line-drawing code
2013-03-04 19:43:51 -05:00
Luke Campagnola
9f55a27fdd More boundingRect / dataBounds bugfixes 2013-02-12 21:44:42 -05:00
Luke Campagnola
ee21e2d054 fixed scatterplotitem segfault
added graphitem
2013-01-30 15:56:08 -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
01b8968a0a Performance improvements:
- AxisItem shows 2 tick levels instead of 3
  - Lots of boundingRect and dataBounds caching
    (improves ViewBox auto-range performance, especially with multiple plots)
  - GraphicsScene avoids testing for hover intersections with non-hoverable items
    (much less slowdown when moving mouse over plots)
These are deep changes; need good testing before we release them.
2013-01-09 22:21:32 -05:00
Luke Campagnola
b66e6e8ad6 Speed up PlotCurveItem in some cases (avoid drawing shadow when it is not needed) 2013-01-07 10:45:17 -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