-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdemoPrompt13.a_ChatGPT+Matplotlib.py
75 lines (65 loc) · 2.31 KB
/
demoPrompt13.a_ChatGPT+Matplotlib.py
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
import os
import sys
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg as NavigationToolbar2Wx
from matplotlib.mathtext import MathTextParser
from numpy import arange, sin, pi, cos, log
import wx
class CanvasFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title, size=(550, 350))
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.canvas = FigureCanvas(self, -1, self.figure)
self.change_plot(0)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.add_buttonbar()
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.add_toolbar()
self.SetSizer(self.sizer)
self.Fit()
def OnChangePlot(self, event):
self.change_plot(event.GetId() - 1000)
def change_plot(self, plot_number):
t = arange(1.0, 3.0, 0.01)
s = functionsplot_number
self.axes.clear()
self.axes.plot(t, s)
self.canvas.draw()
class MyCanvasPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.canvas = FigureCanvas(self, -1, self.figure)
self.toolbar = NavigationToolbar2Wx(self.canvas)
self.toolbar.Realize()
def DoLayout(self):
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
self.SetSizer(sizer)
self.Fit()
def Draw(self):
t = arange(0.0, 3.0, 0.01)
s = sin(2 * pi * t)
self.axes.plot(t, s)
class MyFrame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, -1, title, size=(620, 620))
self.panel = MyCanvasPanel(self)
self.panel.Draw()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame("Sample one")
self.SetTopWindow(frame)
frame.Show(True)
return True
def main():
app = MyApp(False)
app.MainLoop()
if __name__ == "__main__":
main()