-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
431 lines (402 loc) · 17.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
<html>
<head>
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="style.css" />
<title>PyQtGraph - Scientific Graphics and GUI Library for Python</title>
</head>
<body>
<div class="container">
<div class="gallery column">
<div class="gallery-item">
<a href="images/plotting.png"><img src="images/plotting_sm.png" /></a>
<p>
A variety of plotting capabilities.
<a
href="https://github.com/pyqtgraph/pyqtgraph/blob/master/pyqtgraph/examples/Plotting.py"
>[source]</a
>
</p>
</div>
<hr />
<div class="gallery-item">
<a href="images/data_slicing.png"
><img src="images/data_slicing_sm.png"
/></a>
<p>Image analysis with automated data slicing.</p>
</div>
<hr />
<div class="gallery-item">
<a href="images/pyqtgraph-3d.png"
><img src="images/pyqtgraph-3d_sm.png"
/></a>
<p>
3D graphics: volumetric rendering, surface plots, scatter plots, and
isosurfaces.
</p>
</div>
<hr />
<div class="gallery-item">
<a href="images/screenshot3.png"
><img src="images/screenshot3_sm.png"
/></a>
<p>
A variety of Region of Interest (ROI) types. Each ROI selects data
from the underlying image and redisplays it below.
<a
href="https://github.com/pyqtgraph/pyqtgraph/blob/master/pyqtgraph/examples/ROItypes.py"
>[source]</a
>
</p>
</div>
<hr />
<div class="gallery-item">
<a href="images/flowchart.png"
><img src="images/flowchart_sm.png"
/></a>
<p>Programmable flowcharts for fast prototyping.</p>
</div>
<hr />
<p>
For an example of PyQtGraph in use (and more screenshots), see
<a href="http://acq4.org/screenshots.html">ACQ4</a>
</p>
</div>
<div class="column">
<div style="font-size: 24pt; margin-top: 30px; text-align: center">
PyQtGraph
</div>
<div style="font-size: 16pt; margin-bottom: 10px; text-align: center">
Scientific Graphics and GUI Library for Python<br />
</div>
<div style="text-align: center">
<a href="https://pyqtgraph.readthedocs.io/en/latest/">Documentation</a
> -
<a href="http://github.com/pyqtgraph/pyqtgraph">GitHub Repository</a
> -
<a href="https://groups.google.com/forum/#!forum/pyqtgraph"
>Mailing list</a
>
</div>
<br />
<div>
<div
style="
padding: 5px;
margin-bottom: 10px;
border: 1px solid #446;
text-align: left;
width: 500px;
margin-left: auto;
margin-right: auto;
"
>
<b>Install from PyPI:</b><br />
<pre> pip install pyqtgraph</pre>
<b>or via conda:</b><br />
<pre> conda install -c conda-forge pyqtgraph</pre>
<b
>or from
<a href="https://github.com/pyqtgraph/pyqtgraph"
>source on GitHub</a
>:</b
><br />
<pre>
git clone https://github.com/pyqtgraph/pyqtgraph
cd pyqtgraph
pip install .</pre
>
<a
href="https://github.com/pyqtgraph/pyqtgraph/blob/master/CHANGELOG"
>recent changes</a
> - <a
href="https://github.com/pyqtgraph/pyqtgraph/releases"
>older releases</a
>
</div>
<br />
</div>
<div style="font-size: 18px">
<b>PyQtGraph</b> is a pure-python graphics and GUI library built on
<a href="http://www.riverbankcomputing.co.uk/software/pyqt/intro"
>PyQt</a
>
/ <a href="http://www.pyside.org/">PySide</a> and
<a href="http://www.numpy.org/">numpy</a>. It is intended for use in
mathematics / scientific / engineering applications. Despite being
written entirely in python, the library is very fast due to its heavy
leverage of NumPy for number crunching and
<a href="https://doc.qt.io/qt-5/qgraphicsview.html"
>Qt's GraphicsView framework</a
>
for fast display. PyQtGraph is distributed under the
<a href="http://www.opensource.org/licenses/mit-license.php"
>MIT open-source license</a
>.
</div>
<div class="subsection-box">
<div class="subsection-heading">Main Features</div>
<div class="subsection">
<b>Basic 2D plotting in interactive view boxes</b>
<ul>
<li>Line and scatter plots</li>
<li>Data can be panned/scaled by mouse</li>
<li>Fast drawing for realtime data display and interaction</li>
</ul>
<b
>Image display with interactive lookup tables and level control</b
>
<ul>
<li>
Displays most data types (int or float; any bit depth; RGB,
RGBA, or luminance)
</li>
<li>
Functions for slicing multidimensional images at arbitrary
angles (great for MRI data)
</li>
<li>Rapid update for video display or realtime interaction</li>
</ul>
<b>3D graphics system</b> (requires Python-OpenGL bindings)
<ul>
<li>Volumetric data rendering</li>
<li>3D surface and scatter plots</li>
<li>Mesh rendering with isosurface generation</li>
<li>Interactive viewports rotate/zoom with mouse</li>
<li>Basic 3D scenegraph for easier programming</li>
</ul>
<b>Data selection/marking and region-of-interest controls</b>
<ul>
<li>
Interactively mark vertical/horizontal locations and regions in
plots
</li>
<li>
Widgets for selecting arbitrary regions from images and
automatically slicing data to match
</li>
</ul>
<b>Easy to generate new graphics</b>
<ul>
<li>
2D graphics use Qt's GraphicsView framework which is highly
capable and mature.
</li>
<li>3D graphics use OpenGL</li>
<li>
All graphics use a scenegraph for managing items; new graphics
items are simple to create.
</li>
</ul>
<b
>Library of widgets and modules useful for science/engineering
applications</b
>
<ul>
<li>
Flowchart widget for interactive prototyping.<br />
Interface similar to LabView (nodes connected by wires).
</li>
<li>
Parameter tree widget for displaying/editing hierarchies of
parameters<br />
(similar to those used by most GUI design applications).
</li>
<li>
Interactive python console with exception catching.<br />
Great for debugging/introspection as well as advanced user
interaction.
</li>
<li>
Multi-process control allowing remote plotting, Qt signal
connection across processes, and very simple in-line
parallelization.
</li>
<li>
Dock system allowing the user to rearrange GUI components.
<br />Similar to Qt's dock system but a little more flexible and
programmable.
</li>
<li>Color gradient editor</li>
<li>SpinBox with SI-unit display and logarithmic stepping</li>
</ul>
</div>
</div>
<div class="subsection-box">
<div class="subsection-heading">Requirements</div>
<div class="subsection">
PyQtGraph is known to run on Linux, Windows, and OSX.<br />
It should, however, run on any platform which supports the following
packages:
<ul>
<li><b>Python 3+</b></li>
<li>
<b>PyQt 5</b>, <b>PyQt6</b>, <b>PySide2</b>, or <b>PySide6</b>
</li>
<li><b>NumPy</b></li>
<li><b>SciPy</b> is optional for some numerical procedures</li>
<li>
<b>python-opengl</b> bindings are required for 3D graphics
</li>
</ul>
</div>
</div>
<div class="subsection-box">
<div class="subsection-heading">Documentation</div>
<div class="subsection">
Documentation is hosted
<a href="https://pyqtgraph.readthedocs.io/en/latest/">here</a>.
<br />
If you would like to request a specific section of documentation,
please ask on the
<a
href="https://groups.google.com/forum/?fromgroups#!forum/pyqtgraph"
>forum</a
>. There are also many examples to look through; for a menu of
examples run:
<pre> python -m pyqtgraph.examples</pre>
</div>
</div>
<div class="subsection-box">
<div class="subsection-heading">Packaging for Distribution</div>
<div class="subsection">
Applications written with pyqtgraph may be packaged as Windows exe
files using py2exe or OSX dmg files using py2app.
<!-- For pyqtgraph 0.9.8 and earlier, read this excellent and thorough -->
<!-- <a href="Bundling applications with PyQtGraph_R16.pdf">document describing the process.</a> by Christian Gavin<br> -->
<!-- For versions past 0.9.8, using py2exe is much simpler; see examples/py2exe. -->
</div>
</div>
<div class="subsection-box">
<div class="subsection-heading">
Questions, feedback, and bug reports
</div>
<div class="subsection">
<ul>
<li>
Post bug reports and feature requests to the
<a href="https://github.com/pyqtgraph/pyqtgraph/issues"
>GitHub issue tracker</a
>.
</li>
<li>
For questions, there are several options:
<ul>
<li>
<a
href="https://groups.google.com/forum/?fromgroups#!forum/pyqtgraph"
>The PyQtGraph forum (Google Group)</a
>
</li>
<li>
<a href="https://github.com/pyqtgraph/pyqtgraph/discussions"
>GitHub Discussions</a
>
</li>
<li>
<a
href="https://stackoverflow.com/questions/tagged/pyqtgraph"
>Stack Overflow with the 'pyqtgraph' tag</a
>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="subsection-box">
<div class="subsection-heading">
Comparison to other python graphics packages
</div>
<div class="subsection">
<b>Matplotlib</b> is more or less the de-facto standard plotting
library for python. If you are starting a new project and do not
need any of the features specifically provided by pyqtgraph, you
should start with matplotlib. It is much more mature, has an
enormous user community, and produces very nice publication-quality
graphics.
<p>Reasons you might want to use pyqtgraph instead:</p>
<ol>
<li>
Speed. If you are doing anything requiring rapid plot updates,
video, or realtime interactivity, matplotlib is not the best
choice. This is (in my opinion) matplotlib's greatest weakness.
</li>
<li>
Portability / ease of installation. PyQtGraph is a pure-python
package, which means that it runs on virtually every platform
supported by numpy and PyQt, no compiling required. If you
require portability in your application, this can make your life
a lot easier.
</li>
<li>
Many other features--pyqtgraph is much more than a plotting
library; it strives to cover many aspects of science/engineering
application development with more advanced features like its
ImageView and ScatterPlotWidget analysis tools, ROI-based data
slicing, parameter trees, flowcharts, multiprocessing, and more.
</li>
</ol>
<br />
<b>VisPy</b> is a new 2D/3D visualization library based on OpenGL
that is developed as a collaboration between the authors of
PyQtGraph, VisVis, Galry, and Glumpy. It is presently in early
development and has a narrower scope than PyQtGraph--it will focus
on visualization without the GUI toolkit features provided by
PyQtGraph. In the long term, we hope VisPy will be able to replace
Qt as the rendering engine for 2D graphics, and replace the
pyqtgraph.opengl 3D system entirely.
<a href="http://vispy.org">More about VisPy here</a>.
<br />
<br />
<b>PyQwt</b> has a very nice set of features and is fast enough for
realtime work. Its main drawback is that it is currently
unmaintained and can be difficult to get working on a variety of
platforms. Hopefully in the future it may find a new maintainer, but
until then it may be best to avoid PyQwt (the original PyQwt
maintainer is currently recommending to use pyqtgraph instead; check
their mailing lists for updates). Like matplotlib, PyQwt lacks some
of the more advanced features of pyqtgraph.
<b>Chaco</b> is a very interesting project--nice graphics, good
speed, and actively developed. Like PyQwt, however, Chaco can be
challenging to install on a wide variety of platforms and lacks some
of pyqtgraph's more advanced features (although pyqtgraph certainly
lacks many of Chaco's features as well).
<b>GuiQwt</b> is an interesting project with many advanced features
similar to pyqtgraph. It is presently based on PyQwt and thus comes
with some of its drawbacks, although there appear to be plans to
change this in the future.
<!--
For plotting, pyqtgraph is not nearly as complete/mature as matplotlib, but runs much faster.
Matplotlib is more aimed toward making publication-quality
graphics, whereas pyqtgraph is intended for use in data acquisition and analysis applications.
Matplotlib is more intuitive for matlab programmers; pyqtgraph is more intuitive for python/qt programmers.
Matplotlib (to my knowledge) does not include many of pyqtgraph's features such as image interaction,
volumetric rendering, parameter trees, flowcharts, etc.
</li>
<li><b>pyqwt5</b>: About as fast as pyqwt5, but not quite as complete for plotting functionality.
Image handling in pyqtgraph is much more complete (again, no ROI widgets in qwt).
Also, pyqtgraph is written in pure python, so it is more portable than pyqwt, which often lags behind pyqt in development
(I originally used pyqwt, but decided it was too much trouble to rely on it as a dependency in my projects).
Like matplotlib, pyqwt (to my knowledge) does not include many of pyqtgraph's features such as image interaction,
volumetric rendering, parameter trees, flowcharts, etc.
</li>
-->
<div style="margin-top: 20px">
[Please reach out on the
<a href="https://groups.google.com/forum/#!forum/pyqtgraph"
>PyQtGraph Mailing list</a
>
if any of this information is outdated.]
</div>
</div>
</div>
<div class="footer">© 2021 PyQtGraph</div>
</div>
</div>
</body>
</html>