Thomas,
This is a minimal example. In this case I?m not even plotting:
from easygui import fileopenbox
import matplotlib.pyplot as plt
import numpy as np
ft = ["JSON", ["*.jsn", "*.json"]]
filename = fileopenbox(msg='Select JSON files',title='Import',
filetypes=ft, multiple=False)
print(filename)
x = np.arange(10)
y = x**2
Trying to run this from the terminal (OS X, 10.11.4, Python 3.5.1) yield
the following:
Erics-MacBook-Air:QTtest ericshain$ python plottest.py
2016-05-18 07:56:57.023 python[23268:3602317] -[NSApplication _setup:]:
unrecognized selector sent to instance 0x109c3c500
2016-05-18 07:56:57.038 python[23268:3602317] An uncaught exception was
raised
2016-05-18 07:56:57.039 python[23268:3602317] -[NSApplication _setup:]:
unrecognized selector sent to instance 0x109c3c500
2016-05-18 07:56:57.039 python[23268:3602317] (
0 CoreFoundation 0x00007fff8b1c94f2
__exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff8897af7e
objc_exception_throw + 48
2 CoreFoundation 0x00007fff8b2331ad
-[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff8b139571
___forwarding___ + 1009
4 CoreFoundation 0x00007fff8b1390f8
_CF_forwarding_prep_0 + 120
5 libtk8.5.dylib 0x000000010161c76d TkpInit + 472
6 libtk8.5.dylib 0x0000000101594f91 Initialize +
1541
7 _tkinter.cpython-35m-darwin.so 0x00000001003efded Tcl_AppInit +
77
8 _tkinter.cpython-35m-darwin.so 0x00000001003ed7f9
_tkinter_create + 889
9 libpython3.5m.dylib 0x00000001000679d9
PyCFunction_Call + 233
10 libpython3.5m.dylib 0x00000001000f4cd7
PyEval_EvalFrameEx + 36647
11 libpython3.5m.dylib 0x00000001000f5900
_PyEval_EvalCodeWithName + 2400
12 libpython3.5m.dylib 0x00000001000f5a07
PyEval_EvalCodeEx + 71
13 libpython3.5m.dylib 0x00000001000426ba function_call +
186
14 libpython3.5m.dylib 0x000000010000de63 PyObject_Call +
99
15 libpython3.5m.dylib 0x000000010002b12c method_call +
140
16 libpython3.5m.dylib 0x000000010000de63 PyObject_Call +
99
17 libpython3.5m.dylib 0x0000000100080cc1 slot_tp_init +
81
18 libpython3.5m.dylib 0x000000010007b964 type_call + 212
19 libpython3.5m.dylib 0x000000010000de63 PyObject_Call +
99
20 libpython3.5m.dylib 0x00000001000edb9c
PyEval_EvalFrameEx + 7660
21 libpython3.5m.dylib 0x00000001000f5900
_PyEval_EvalCodeWithName + 2400
22 libpython3.5m.dylib 0x00000001000f3c75
PyEval_EvalFrameEx + 32453
23 libpython3.5m.dylib 0x00000001000f5900
_PyEval_EvalCodeWithName + 2400
24 libpython3.5m.dylib 0x00000001000f5a61 PyEval_EvalCode
+ 81
25 libpython3.5m.dylib 0x00000001001247ee
PyRun_FileExFlags + 206
26 libpython3.5m.dylib 0x0000000100124a8f
PyRun_SimpleFileExFlags + 447
27 libpython3.5m.dylib 0x000000010013d497 Py_Main + 3479
28 python 0x0000000100000e92 main + 418
29 python 0x0000000100000cc4 start + 52
30 ??? 0x0000000000000002 0x0 + 2
)
2016-05-18 07:56:57.039 python[23268:3602317] *** Terminating app due to
uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication
_setup:]: unrecognized selector sent to instance 0x109c3c500'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff8b1c94f2
__exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff8897af7e
objc_exception_throw + 48
2 CoreFoundation 0x00007fff8b2331ad
-[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff8b139571
___forwarding___ + 1009
4 CoreFoundation 0x00007fff8b1390f8
_CF_forwarding_prep_0 + 120
5 libtk8.5.dylib 0x000000010161c76d TkpInit + 472
6 libtk8.5.dylib 0x0000000101594f91 Initialize +
1541
7 _tkinter.cpython-35m-darwin.so 0x00000001003efded Tcl_AppInit +
77
8 _tkinter.cpython-35m-darwin.so 0x00000001003ed7f9
_tkinter_create + 889
9 libpython3.5m.dylib 0x00000001000679d9
PyCFunction_Call + 233
10 libpython3.5m.dylib 0x00000001000f4cd7
PyEval_EvalFrameEx + 36647
11 libpython3.5m.dylib 0x00000001000f5900
_PyEval_EvalCodeWithName + 2400
12 libpython3.5m.dylib 0x00000001000f5a07
PyEval_EvalCodeEx + 71
13 libpython3.5m.dylib 0x00000001000426ba function_call +
186
14 libpython3.5m.dylib 0x000000010000de63 PyObject_Call +
99
15 libpython3.5m.dylib 0x000000010002b12c method_call +
140
16 libpython3.5m.dylib 0x000000010000de63 PyObject_Call +
99
17 libpython3.5m.dylib 0x0000000100080cc1 slot_tp_init +
81
18 libpython3.5m.dylib 0x000000010007b964 type_call + 212
19 libpython3.5m.dylib 0x000000010000de63 PyObject_Call +
99
20 libpython3.5m.dylib 0x00000001000edb9c
PyEval_EvalFrameEx + 7660
21 libpython3.5m.dylib 0x00000001000f5900
_PyEval_EvalCodeWithName + 2400
22 libpython3.5m.dylib 0x00000001000f3c75
PyEval_EvalFrameEx + 32453
23 libpython3.5m.dylib 0x00000001000f5900
_PyEval_EvalCodeWithName + 2400
24 libpython3.5m.dylib 0x00000001000f5a61 PyEval_EvalCode
+ 81
25 libpython3.5m.dylib 0x00000001001247ee
PyRun_FileExFlags + 206
26 libpython3.5m.dylib 0x0000000100124a8f
PyRun_SimpleFileExFlags + 447
27 libpython3.5m.dylib 0x000000010013d497 Py_Main + 3479
28 python 0x0000000100000e92 main + 418
29 python 0x0000000100000cc4 start + 52
30 ??? 0x0000000000000002 0x0 + 2
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6
Eric
On May 18, 2016, at 7:52 AM, Thomas Caswell <tcaswell at gmail.com> wrote:
The crashes are likely due to conflicts between the multiple gui event
loops, how ever with out a minimal example it is hard to say.
pyplot functions are mostly auto-generated and have the form
def foo(*args, **kwargs):
retrun gca().foo(*args, **kwargs)
so anything you can do in pyplot you can do via the OO api. Just take a
look at the pyplot source for the functions you want to use and replace
`gca` with an Axes object or `gcf` with a Figure object.
Full Axes api docs: http://matplotlib.org/api/axes_api.html
Tom
On Wed, May 18, 2016 at 8:42 AM Eric's Gmail <eric.shain at gmail.com> wrote:
Ben,
I don?t really want a GUI application it this case. What I?m usually
wanting is run pyplot with a file open dialog and a file save dialog. The
file dialogs are important since I?m importing lots of json files and it
would be a mess to try to type lots of long file names. I?ve tried several
options including easygui, Tk and pyqt4. In theses cases, I can run them so
long as I?m in an ipython console. However, as soon as I try to run from
the terminal, I get a crash. I?ve managed by avoiding pyplot, but it is
much nicer than using matplotlib without it.
Eric
On May 16, 2016, at 1:46 PM, Benjamin Root <ben.v.root at gmail.com> wrote:
In general, yes, you should avoid using pyplot when embedding. However,
that rule actually only needs to be strictly followed when you are
embedding the matplotlib's canvas into your own instantiated Window object.
If you are embedding GUI elements into a matplotlib figure window, you
actually can still utilize pyplot (but very carefully).
I suggest reading up my book:
http://www.amazon.com/Interactive-Applications-using-Matplotlib-Benjamin/dp/1783988843/
Cheers!
Ben Root
On Tue, Apr 26, 2016 at 5:28 PM, Eric <eric.shain at gmail.com> wrote:
I've read that when writing a GUI application to avoid using pyplot. I
experienced this when I wrote a python script that called the tkinter
file
dialog and then processed and plotted data. It would run when launched in
Ipython but would crash when run in the terminal. It ran in terminal
when I
eliminated the file dialog and the file dialog code ran without the
plotting. I rewrote the script using pyqt4, and avoided using pyplot
using
matplotlib figure instead. First question is is it true that I should
avoid
any use of pyplot in a gui app? Second is that I find it hard to do
things
in matplotlib that are easy in pyplot like drawing horizontal or vertical
lines and such. Is there documentation and code examples using the
matplotlib without pyplot?
Thanks, Eric
--
View this message in context:
http://matplotlib.1069221.n5.nabble.com/Use-of-Pyplot-in-a-GUI-script-tp47030.html
Sent from the matplotlib - users mailing list archive at Nabble.com
<http://nabble.com/>\.
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page