[Matplotlib-users] tk and matplotlib
Vincent Douce Mathoscope
vincent.douce.mathoscope at netcourrier.com
Thu Dec 3 12:14:11 EST 2020
Hi Anthony
hi everyone
i feel blocked at the just beginning of my attempts with PySimpleGUI/MatPlotLib
with exactly your code i get this answer :
i dont know in which direction to search :
Vincent
-------
2020-12-03 16:20:55.678 Python[17698:7853902] -[NSApplication _setup:]: unrecognized selector sent to instance 0x7ff7e7890560
2020-12-03 16:20:55.686 Python[17698:7853902] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication _setup:]: unrecognized selector sent to instance 0x7ff7e7890560'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff2eafda7d __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff591cea17 objc_exception_throw + 48
2 CoreFoundation 0x00007fff2eb77886 -[NSObject(NSObject) __retain_OA] + 0
3 CoreFoundation 0x00007fff2ea9f8ef ___forwarding___ + 1485
4 CoreFoundation 0x00007fff2ea9f298 _CF_forwarding_prep_0 + 120
5 libtk8.6.dylib 0x0000000102bf41f2 TkpInit + 408
6 libtk8.6.dylib 0x0000000102b63aac Initialize + 2454
7 _tkinter.cpython-39-darwin.so 0x00000001029b7704 Tcl_AppInit + 84
8 _tkinter.cpython-39-darwin.so 0x00000001029b7022 _tkinter_create + 1362
9 Python 0x00000001020d672a cfunction_vectorcall_FASTCALL + 218
10 Python 0x000000010216e86c call_function + 732
11 Python 0x000000010216bd93 _PyEval_EvalFrameDefault + 25219
12 Python 0x000000010216f563 _PyEval_EvalCode + 2611
13 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
14 Python 0x00000001020980b5 _PyObject_FastCallDictTstate + 293
15 Python 0x0000000102098c98 _PyObject_Call_Prepend + 152
16 Python 0x00000001020f21e5 slot_tp_init + 165
17 Python 0x00000001020ed699 type_call + 345
18 Python 0x000000010209825d _PyObject_MakeTpCall + 365
19 Python 0x000000010216e8fc call_function + 876
20 Python 0x000000010216be2b _PyEval_EvalFrameDefault + 25371
21 Python 0x0000000102098a28 function_code_fastcall + 104
22 Python 0x000000010216e86c call_function + 732
23 Python 0x000000010216bd93 _PyEval_EvalFrameDefault + 25219
24 Python 0x000000010216f563 _PyEval_EvalCode + 2611
25 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
26 Python 0x000000010216e86c call_function + 732
27 Python 0x000000010216bd93 _PyEval_EvalFrameDefault + 25219
28 Python 0x000000010216f563 _PyEval_EvalCode + 2611
29 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
30 Python 0x00000001020980b5 _PyObject_FastCallDictTstate + 293
31 Python 0x0000000102098c98 _PyObject_Call_Prepend + 152
32 Python 0x00000001020f21e5 slot_tp_init + 165
33 Python 0x00000001020ed699 type_call + 345
34 Python 0x000000010209825d _PyObject_MakeTpCall + 365
35 Python 0x000000010216e8fc call_function + 876
36 Python 0x000000010216bd93 _PyEval_EvalFrameDefault + 25219
37 Python 0x0000000102098a28 function_code_fastcall + 104
38 Python 0x000000010216e86c call_function + 732
39 Python 0x000000010216be2b _PyEval_EvalFrameDefault + 25371
40 Python 0x000000010216f563 _PyEval_EvalCode + 2611
41 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
42 Python 0x000000010216e86c call_function + 732
43 Python 0x000000010216bd72 _PyEval_EvalFrameDefault + 25186
44 Python 0x000000010216f563 _PyEval_EvalCode + 2611
45 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
46 Python 0x000000010209aa6a method_vectorcall + 202
47 Python 0x000000010216e86c call_function + 732
48 Python 0x000000010216bec1 _PyEval_EvalFrameDefault + 25521
49 Python 0x000000010216f563 _PyEval_EvalCode + 2611
50 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
51 Python 0x000000010209aa6a method_vectorcall + 202
52 Python 0x000000010216e86c call_function + 732
53 Python 0x000000010216bec1 _PyEval_EvalFrameDefault + 25521
54 Python 0x0000000102098a28 function_code_fastcall + 104
55 Python 0x000000010216e86c call_function + 732
56 Python 0x000000010216bd72 _PyEval_EvalFrameDefault + 25186
57 Python 0x000000010216f563 _PyEval_EvalCode + 2611
58 Python 0x00000001020989b1 _PyFunction_Vectorcall + 289
59 Python 0x000000010209802f _PyObject_FastCallDictTstate + 159
60 Python 0x0000000102098c98 _PyObject_Call_Prepend + 152
61 Python 0x00000001020f21e5 slot_tp_init + 165
62 Python 0x00000001020ed699 type_call + 345
63 Python 0x000000010209825d _PyObject_MakeTpCall + 365
64 Python 0x000000010216e8fc call_function + 876
65 Python 0x000000010216bec1 _PyEval_EvalFrameDefault + 25521
66 Python 0x000000010216f563 _PyEval_EvalCode + 2611
67 Python 0x00000001021659eb PyEval_EvalCode + 139
68 Python 0x00000001021b8352 PyRun_FileExFlags + 434
69 Python 0x00000001021b792f PyRun_SimpleFileExFlags + 831
70 Python 0x00000001021d47e9 Py_RunMain + 1801
71 Python 0x00000001021d4c7f pymain_main + 223
72 Python 0x00000001021d4e7b Py_BytesMain + 43
73 libdyld.dylib 0x00007fff5a99c3d5 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6
> Le 30 nov. 2020 à 15:31, Anthony Billings <ABillings at axustech.com> a écrit :
>
> When I want to embed an MPL plot inside of a tkinter window I use PySimpleGUI. It’s a quick and easy module that makes working with tkinter much more manageable. I’ve found an example that uses PySimpleGui and embeds a simple MPL plot inside. I hope this helps. Happy coding!
>
> #!/usr/bin/env python
> import PySimpleGUI as sg
> import matplotlib
> from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
> # matplotlib.use('TkAgg')
> import numpy as np
> import matplotlib.pyplot as plt
> """
> Demonstrates one way of embedding Matplotlib figures into a PySimpleGUI window.
> Paste your Pyplot code into the section marked below.
> Do all of your plotting as you normally would, but do NOT call plt.show().
> Stop just short of calling plt.show() and let the GUI do the rest.
> The remainder of the program will convert your plot and display it in the GUI.
> If you want to change the GUI, make changes to the GUI portion marked below.
> """
>
> import matplotlib.pyplot as plt
> import numpy as np
>
> def abline(slope, intercept):
> """Plot a line from slope and intercept"""
> axes = plt.gca()
> x_vals = np.array(axes.get_xlim())
> y_vals = intercept + slope * x_vals
> plt.plot(x_vals, y_vals, '--')
>
> # ------------------------------- PASTE YOUR MATPLOTLIB CODE HERE -------------------------------
>
> abline(-0.3, 1)
> plt.ylim(0.5, 1.5)
> plt.xlim(0,1)
>
>
> # ------------------------------- END OF YOUR MATPLOTLIB CODE -------------------------------
>
> # ------------------------------- Beginning of Matplotlib helper code -----------------------
>
> def draw_figure(canvas, figure, loc=(0, 0)):
> figure_canvas_agg = FigureCanvasTkAgg(figure, canvas)
> figure_canvas_agg.draw()
> figure_canvas_agg.get_tk_widget().pack(side='top', fill='both', expand=1)
> return figure_canvas_agg
>
> # ------------------------------- Beginning of GUI CODE -------------------------------
>
>
> fig = plt.gcf() # if using Pyplot then get the figure from the plot
> figure_x, figure_y, figure_w, figure_h = fig.bbox.bounds
>
> # define the window layout
> layout = [[sg.Text('Plot test', font='Any 18')],
> [sg.Canvas(size=(figure_w, figure_h), key='-CANVAS-')],
> [sg.OK(pad=((figure_w / 2, 0), 3), size=(4, 2))]]
>
> # create the form and show it without the plot
> window = sg.Window('Demo Application - Embedding Matplotlib In PySimpleGUI',
> layout, force_toplevel=True, finalize=True)
>
> # add the plot to the window
> fig_photo = draw_figure(window['-CANVAS-'].TKCanvas, fig)
>
> # show it all again and get buttons
> event, values = window.read()
>
> window.close()
>
>
> From: Matplotlib-users <matplotlib-users-bounces+abillings=axustech.com at python.org> On Behalf Of Vincent Douce Mathoscope
> Sent: Monday, November 30, 2020 5:53 AM
> To: matplotlib-users at python.org
> Subject: [Matplotlib-users] tk and matplotlib
>
> hi
> i am creating a matplotlib draw (musical sales on a guitar) in function of some parameters (tonic note, type of gamme or chord...)
> i am now creating tk radio buttons so that the user can choose the parameters
> i can get these parameters and create the matplotlib picture with them
> but the matplotlib will open a different window
> would it be possible to have a same window, divided as a table, with at the lift the radio buttons, and at the right the matplotlib result ?
> ----
> https://lemathoscope.com/ <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2flemathoscope.com%2f&c=E,1,6vcd1-3cyy9rlYSvGPYjXZjP8pMdDLA0ZtZConnBK6PmFwpI6mZPG-h5-3MDOJ5IiIUqm7msJCw9kYECyLC9LoZVreR0FdEmkAWQ24yv8JApkqfCnPs,&typo=1>
> cours de maths postbac par visio
----
https://lemathoscope.com/
cours de maths postbac par visio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/matplotlib-users/attachments/20201203/4c90a210/attachment-0001.html>
More information about the Matplotlib-users
mailing list