Commit Graph

1931 Commits

Author SHA1 Message Date
Kenneth Lyons 54ade7dfb8 Add readthedocs config file as recommended 2020-05-17 16:06:00 -07:00
Kenneth Lyons ae8fc195da Disable inherited docstrings 2020-05-16 10:14:52 -07:00
Kenneth Lyons 5353acdb1c Static paths not used for docs. Fix malformed table in docstring 2020-05-16 10:12:33 -07:00
Kenneth Lyons f2e91d1b9a Add matplotlib and pyopengl to docs dependencies 2020-05-11 20:45:25 -07:00
Kenneth Lyons 10cb80a2ae Add dependencies for docs build 2020-05-11 20:23:10 -07:00
Kyle Sunden fb56d3eaa9
Merge pull request #801 from ales-erjavec/remove-address-cache
Remove use of GraphicsScene._addressCache in translateGraphicsItem
2020-05-11 10:38:39 -05: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
Kenneth Lyons 5bebf697b0
Disable remove ROI menu action in handle context menu (#1197) 2020-05-10 08:39:17 -07:00
2xB 720fa5f3c2
DateAxisItem: AxisItem unlinking tests and doc fixed (#1179)
* Added test_AxisItem by @mliberty1

As found in https://github.com/pyqtgraph/pyqtgraph/pull/917

* test_AxisItem: Fit to current implementation

* DateAxisItem: Fix documentation to zoomLevels

zoomLevels is not intended to be set by the user (see discussion in converstation from
https://github.com/pyqtgraph/pyqtgraph/pull/1154/files#diff-aefdb23660d0963df0dff3a116baded8
). Also, `zoomLevelWidths` does currently not exist.
This commit adapts the documentation to reflect that.

* DateAxisItem: Do not publish ZoomLevel

* DateAxisItem testing: Removed unnecessary monkeypatch fixture

Co-authored-by: 2xB <2xB@users.noreply.github.com>
2020-05-05 09:16:07 -07:00
2xB 96be1bd23f
Fix: AxisItem tickFont is defined in two places while only one is used (#1180)
To set the tick font of `AxisItem`s, there are two options:
`setStyle({"tickFont":...})` and `setTickFont(...)`.
The first option sets `AxisItem.style['tickFont']`, the second
sets `self.tickFont`. Only `self.tickFont` is actually used.
This PR replaces all occurrences of the second variable with the first
variable, so both options work again. Also, documentation from
`setStyle` is copied to `setTickFont`.

Co-authored-by: 2xB <2xB@users.noreply.github.com>
2020-05-04 14:58:29 -07:00
Daniel Hrisca f7364f52b3
improve SymbolAtlas.getSymbolCoords performance (#1184)
* remote legacy work-around for old numpy errors

* forgot to remove the numpy_fix import

* require numyp >= 1.8.0

* improve performance of updateData PlotCurveItem (saves about 2us per call)

* improve ScatterPlotItem performance
2020-05-04 13:42:03 -07:00
Ales Erjavec 02b7532706 Remove use of GraphicsScene._addressCache in translateGraphicsItem
Use QGraphicsItem.toQGrapicsObject on the item instead.

This probably is not even needed since PyQt 4.9
2020-05-01 13:05:51 +02:00
Lev Maximov a76d9daec2
Date axis item (#1154)
* Add DateAxisItem

* Change style to camelCase

* Fix missing first tick for negative timestamps

* Add ms precision, auto skipping

Auto skipping allows a zoom level to skip ticks automatically if the
maximum number of ticks/pt is exceeded

* fixes suggested by @goetzc

* workaround for negative argument to utcfromtimestamp on windows

* attachToPlotItem method

* default date axis orientation

* Use new DateAxisItem in Plot Customization example

* attachToPlotItem bugfix

* examples of DateAxisItem

* modified description of customPlot example

* added descriptions to the new examples, reformatted their code, included the first one into utils.py

* typo

* Refactored code for setting axis items into new function

Replaces "DateAxisItem.attachToPlotItem"

* Fix string comparison with ==

* Doc: Slightly more text for DateAxisItem, small improvement for PlotItem

* Make PlotWidget.setAxisItems official

* Fix typo in docstring

* renamed an example

* merge bug fix

* Revert "merge bug fix"

This reverts commit 876b5a7cdb.

* Real bug fix

* support for dates upto -1e13..1e13

* Automatically limit DateAxisItem to a range from -1e12 to 1e12 years

Very large years (|y|>1e13) cause infinite loop, and since nobody
needs time 100 times larger than the age of the universe anyways,
this constrains it to 1e12.

Following suggestion by @axil:
https://github.com/pyqtgraph/pyqtgraph/pull/1154#issuecomment-612662168

* Also catch ValueErrors occuring on Linux before OverfloeErrors

While zooming out, before hitting OverflowErrors, utctimestamp
produces ValueErrors (at least on my Linux machine), so they
are also catched.

* Fix: Timestamp 0 corresponds to year 1970

For large years, x axis labels jump by 1970 years if it is not
accounted for timestamp 0 to be equal to year 1970.

* Fix: When zooming into extreme dates, OSError occurs

This commit catches the OSError like the other observed errors

* Disable stepping below years for dates outside *_REGULAR_TIMESTAMP

2 reasons: First: At least on my Linux machine, zooming into
those dates creates infinite loops. Second: Nobody needs
sub-year-precision for those extreme years anyways.

* Adapt zoom level sizes based on current font size and screen resolution

This is somewhat experimental. With this commit, no longer 60 px are
assumed as width for all zoom levels, but the current font and
display resolution are considered to calculate the width of ticks in
each zoom level. See the new function `updateZoomLevels` for
details.
Before calling this function, overridden functions `paint` and
`generateDrawSpecs` provide information over the current display
and font via `self.fontScaleFactor` and `self.fontMetrics`.

* Meaningful error meassage when adding axis to multiple PlotItems

As @axil noted in the DateAxisItem PR, currently users get a
segmentation fault when one tries to add an axis to multiple
PlotItems. This commit adds a meaningful RuntimeError message
for that case.

* setZoomLevelForDensity: Refactoring and calculating optimal spacing on the fly

* DateTimeAxis Fix: 1970 shows when zooming far out

* Refactoring: Make zoomLevels a customizable dict again

* updated the dateaxisitem example

* Fix: Get screen resolution in a way that also works for Qt 4

This is both a simplification in code and an improvement in backwards compatibility with Qt 4.

* DateAxisItem Fix: Also resolve time below 0.5 seconds

* unix line endings in examples

* DateTimeAxis Fix: For years < 1 and > 9999, stepping broke

Stepping was off by 1970 years for years < 1 and > 9999,
resulting in a gap in ticks visible when zooming out. Fixed by
subtracting the usual 1970 years.

* DateTimeAxis Fix: Zooming out too far causes infinite loop

Fixed by setting default limits to +/- 1e10 years. Should still
be enough.

* improved second dateaxisitem example

* 1..9999 years limit

* DateTimeAxis: Use OrderedDict to stay compatible with Python < 3-6

* DateAxisItem: Use font height to determine spacing for vertical axes

* window title

* added dateaxisitem.rst

* updated index.rst

Co-authored-by: Lukas Heiniger <lukas.heiniger@sed.ethz.ch>
Co-authored-by: Lev Maximov <lev.maximov@gmail.com>
Co-authored-by: 2xB <2xB@users.noreply.github.com>
2020-04-27 11:43:22 -07:00
Ogi Moore a2053b13d0
Merge pull request #1169 from ixjlyons/mkqapp-default-arg
Replace default list arg with None
2020-04-11 21:16:47 -07:00
Kenneth Lyons a703155a21 Replace default list arg with None 2020-04-11 20:15:00 -07:00
Ogi Moore 66b8c42ee0
Merge pull request #1166 from 2xB/fix-1165
pg.mkQApp: Pass non-empty string array to QApplication() as default
2020-04-11 17:01:16 -07:00
2xB be1ed14bd0 pg.mkQApp: Pass default application name to Qt, added documentation 2020-04-12 00:43:16 +02:00
Ogi Moore 6f4048596b
Merge pull request #1156 from 2xB/2xb-fix-1155
SVGExporter: Correct image pixelation.
2020-04-09 07:52:46 -07:00
Ogi Moore 4dde1529ce
Merge pull request #1159 from 2xB/2xb-fix-1144
Fix: Update axes after data is set
2020-04-09 07:50:25 -07:00
2xB 71636e3518 Fix: Update axes after data is set 2020-04-08 17:11:20 +02:00
2xB 1e81f3dad0 SVGExporter: Correct image pixelation. 2020-04-08 01:14:36 +02:00
Ogi Moore 88931bc4a5
Merge pull request #1152 from ixjlyons/fnanfix-test
Fnanfix test
2020-04-03 18:39:10 -07:00
Kenneth Lyons 988e5c1222 Test makeARGB with nans 2020-04-03 17:56:38 -07:00
Jan Kotanski 6f34da586d remove second nanMask = np.isnan(data) 2020-04-03 17:56:38 -07:00
Jan Kotanski daeacad71f Make nanMask compatible with 3D data 2020-04-03 17:56:11 -07:00
Jan Kotanski 61967bd7f7 add nanfix 2020-04-03 17:49:34 -07:00
lcmcninch a5dd549be1
Pass showAxRect keyword arguments to setRange to allow caller to set padding, etc. (#1145)
Co-authored-by: Luke McNinch <lucas.c.mcninch.civ@mail.mil>
2020-04-03 15:33:21 -07:00
Kenneth Lyons db67a256a9
Miscellaneous doc fixups (#1142)
* Miscellaneous doc cleanup

* Moved dockarea up a level (like flowchart, parametertree). Removed extraneous parametertree doc
2020-04-03 10:06:25 -07:00
Ogi Moore 7cbc703449
Merge pull request #1151 from ixjlyons/imageexporter-tests
ImageExporter py2-pyside fix with test
2020-04-03 09:46:45 -07:00
Kenneth Lyons 3ba76475d4 Added ImageExporter test for py2-pyside fix 2020-04-03 09:30:23 -07:00
Ogi Moore 556ba55be3
Merge pull request #1124 from dargor/color_examples
Syntax highlighting for examples.
2020-03-08 07:19:54 -07:00
Gabriel Linder d0b92349dd
Intercept light/dark modes transitions on MacOS. 2020-03-08 10:34:54 +01:00
Gabriel Linder 412698c8bb
Dark mode support. 2020-03-07 23:02:40 +01:00
Ogi Moore a8d1a84870
Merge pull request #1063 from ales-erjavec/view-box-enable-menu-fix
Fix: AttributeError in ViewBox.setEnableMenu
2020-03-06 16:16:14 -08:00
Ogi Moore 93f8ee9f0a
Merge pull request #1111 from JoeXinfa/add-label
Add name label to GradientEditorItem
2020-03-06 15:30:57 -08:00
Ogi Moore f61d38ba8b
Merge pull request #1110 from jkotan/nextafter2
fix for makeARGB error after #955
2020-03-06 13:32:11 -08:00
Ogi Moore 5cd19ba7a0
Merge pull request #1139 from SamSchott/patch-1
Bug fix in LegendItem for `setPen`, `setBrush` etc
2020-03-06 11:26:48 -08:00
Ogi Moore 19670a8469
Merge pull request #1131 from j9ac9k/update-ci-fix-tests
Update CI/tox and Enable More Tests
2020-03-06 10:47:05 -08:00
Ognyan Moore 221d5d8830 No longer usign mailmap 2020-03-06 10:35:31 -08:00
Ognyan Moore db6341de12 Removing use of travis CI 2020-03-06 10:35:19 -08:00
SamSchott 3509d79c0f
bug fix for `setPen`, `setBrush`, ...
Fixes a bug where `setPen`, `setBrush` and `setLabelTextColor` would fail because they call `LegendItem.paint` without a pen. They should instead call `LegendItem.update`.
2020-03-06 15:02:39 +00:00
Unknown 6985be2a6f replaced incompatible string construction 2020-03-01 17:46:01 +01:00
Ogi 3158c5b4db Use int() instead of .__int__() 2020-02-29 14:38:19 -08:00
Ognyan Moore 1d552feaf0 Update readme and contributing files 2020-02-28 14:48:24 -08:00
Ognyan Moore 87d6eae84d Remove py2 pip warning message 2020-02-28 14:29:16 -08:00
Ognyan Moore ae776a807d Filter out expected warnings 2020-02-28 14:28:36 -08:00
Ognyan Moore 6ed8a405fe Address FutureWarning about implicit float to int conversions 2020-02-28 14:27:10 -08:00
Ognyan Moore 7199a4f4ce deepcopy(dict) does not necessarily preserve insertion order 2020-02-28 14:25:34 -08:00
Ognyan Moore 8930adc27e Update tox config 2020-02-26 10:06:15 -08:00
Ognyan Moore 3195ed4c8f Skip some tests on pyside2 2020-02-26 10:06:02 -08:00