class plot(wx.Frame): #---------------------------------------------------------------------- def __init__(self, grafica): wx.Frame.__init__(self, None, wx.ID_ANY, 'Grafica de resultados') panel = wx.Panel(self, wx.ID_ANY) mainSizer = wx.BoxSizer(wx.VERTICAL) checkSizer = wx.BoxSizer(wx.HORIZONTAL) self.canvas = PlotCanvas(panel) self.canvas.SetShowScrollbars(True) self.canvas.SetEnableZoom(True) self.canvas.Draw(grafica) toggleGrid = wx.CheckBox(panel, label="Ver cuadricula") toggleGrid.Bind(wx.EVT_CHECKBOX, self.onToggleGrid) toggleLegend = wx.CheckBox(panel, label="Ver leyenda") toggleLegend.Bind(wx.EVT_CHECKBOX, self.onToggleLegend) mainSizer.Add(self.canvas, 1, wx.EXPAND) checkSizer.Add(toggleGrid, 0, wx.ALL, 5) checkSizer.Add(toggleLegend, 0, wx.ALL, 5) mainSizer.Add(checkSizer) panel.SetSizer(mainSizer) def onToggleGrid(self, event): self.canvas.Reset() self.canvas.SetEnableGrid(event.IsChecked()) def onToggleLegend(self, event): self.canvas.SetEnableLegend(event.IsChecked()) def dibujar(self): app = wx.App(False) self.Show() app.MainLoop()
class MyGraph(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, 'It Looks Like a Line Graph!') # Add a panel so it looks the correct on all platforms panel = wx.Panel(self, wx.ID_ANY) # create some sizers mainSizer = wx.BoxSizer(wx.VERTICAL) checkSizer = wx.BoxSizer(wx.HORIZONTAL) # create the widgets self.canvas = PlotCanvas(panel) self.canvas.Draw(drawLinePlot()) toggleGrid = wx.CheckBox(panel, label="Show Grid") toggleGrid.Bind(wx.EVT_CHECKBOX, self.onToggleGrid) toggleLegend = wx.CheckBox(panel, label="Show Legend") toggleLegend.Bind(wx.EVT_CHECKBOX, self.onToggleLegend) # layout the widgets mainSizer.Add(self.canvas, 1, wx.EXPAND) checkSizer.Add(toggleGrid, 0, wx.ALL, 5) checkSizer.Add(toggleLegend, 0, wx.ALL, 5) mainSizer.Add(checkSizer) panel.SetSizer(mainSizer) def onToggleGrid(self, event): """""" self.canvas.SetEnableGrid(event.IsChecked()) def onToggleLegend(self, event): """""" self.canvas.SetEnableLegend(event.IsChecked())
class piramida_penduduk(wx.Frame): def _init_ctrls(self, prnt): # generated method, don't edit wx.Frame.__init__(self, id=wxID_PIRAMIDA_PENDUDUK, name=u'piramida_penduduk', parent=prnt, pos=wx.Point(341, 167), size=wx.Size(911, 445), style=wx.DEFAULT_FRAME_STYLE, title=u'Perbandingan Penduduk') self.SetClientSize(wx.Size(911, 445)) def __init__(self, parent): self._init_ctrls(parent) self.drawBarGraph() def drawBarGraph(): self.canvas = PlotCanvas(panel) self.canvas.Draw(drawBarGraph()) toggleGrid = wx.CheckBox(panel, label="Show Grid") toggleGrid.Bind(wx.EVT_CHECKBOX, self.onToggleGrid) toggleLegend = wx.CheckBox(panel, label="Show Legend") toggleLegend.Bind(wx.EVT_CHECKBOX, self.onToggleLegend) points1 = [(1, 0), (1, 10)] line1 = PolyLine(points1, colour='green', legend='Feb.', width=10) points1g = [(2, 0), (2, 4)] line1g = PolyLine(points1g, colour='red', legend='Mar.', width=10) points1b = [(3, 0), (3, 100)] line1b = PolyLine(points1b, colour='blue', legend='Apr.', width=10) points2 = [(4, 0), (4, 12)] line2 = PolyLine(points2, colour='Yellow', legend='May', width=10) points2g = [(5, 0), (5, 8)] line2g = PolyLine(points2g, colour='orange', legend='June', width=10) points2b = [(6, 0), (6, 4)] line2b = PolyLine(points2b, colour='brown', legend='July', width=10) return PlotGraphics([line1, line1g, line1b, line2, line2g, line2b], "Bar Graph - (Turn on Grid, Legend)", "Months", "Number of Students") def onToggleGrid(self, event): """""" self.canvas.SetEnableGrid(event.IsChecked()) #---------------------------------------------------------------------- def onToggleLegend(self, event): """""" self.canvas.SetEnableLegend(event.IsChecked())
def build(self, panel): hboxMain = wx.BoxSizer(wx.HORIZONTAL) vboxInput = wx.BoxSizer(wx.VERTICAL) # horizontal box containing labels for index including date (from-to) hboxIndexLabel = wx.BoxSizer(wx.HORIZONTAL) hboxIndexLabel.Add(wx.StaticText(panel, label='Index'), flag=wx.RIGHT, border=81) hboxIndexLabel.Add(wx.StaticText(panel, label='Begin'), flag=wx.RIGHT, border=70) hboxIndexLabel.Add(wx.StaticText(panel, label='Ende')) vboxInput.Add(hboxIndexLabel, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10) # horizontal box containing value-fields for index including date (from-to) hboxIndexValue = wx.BoxSizer(wx.HORIZONTAL) self.ctrl_stock_name = wx.TextCtrl(panel) hboxIndexValue.Add(self.ctrl_stock_name, flag=wx.RIGHT, border=8) self.ctrl_stock_start = wx.DatePickerCtrl(panel, -1, style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY) hboxIndexValue.Add(self.ctrl_stock_start) self.ctrl_stock_end = wx.DatePickerCtrl(panel, -1, style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY) hboxIndexValue.Add(self.ctrl_stock_end) vboxInput.Add(hboxIndexValue, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=10) # fetch button self.btn_update_index = wx.Button(panel, label="Fetch Index") vboxInput.Add(self.btn_update_index, flag=wx.ALL, border=5) self.btn_process = wx.Button(panel, label="Process") vboxInput.Add(self.btn_process, flag=wx.ALL, border=5) vboxInput.Add((-1, 10)) # space between index and trader # trader options vboxTraderLeft = wx.BoxSizer(wx.VERTICAL) self.ctrl_trader_mode = wx.ComboBox(panel, choices=TRADER_MODES, style=wx.CB_READONLY) vboxTraderLeft.Add(wx.StaticText(panel, label='Trader'), flag=wx.ALL, border=5) vboxTraderLeft.Add(self.ctrl_trader_mode, flag=wx.ALL, border=5) vboxTraderRight = wx.BoxSizer(wx.VERTICAL) hboxTraderToggles = wx.BoxSizer(wx.HORIZONTAL) self.ctrl_dynamic = wx.CheckBox(panel, label="dynamic") self.ctrl_reverse = wx.CheckBox(panel, label="reverse") self.ctrl_initial_funds = wx.lib.intctrl.IntCtrl(panel) hboxTraderToggles.Add(self.ctrl_dynamic, flag=wx.ALL, border=5) hboxTraderToggles.Add(self.ctrl_reverse, flag=wx.ALL, border=5) vboxTraderRight.Add(hboxTraderToggles, flag=wx.ALL, border=5) vboxTraderRight.Add(self.ctrl_initial_funds, flag=wx.ALL, border=5) vboxTraderOptions = wx.BoxSizer(wx.HORIZONTAL) vboxTraderOptions.Add(vboxTraderLeft) vboxTraderOptions.Add(vboxTraderRight) vboxInput.Add(vboxTraderOptions, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=10) # horizontal box containing labels for trendindicator vboxInput.Add(self.indicator1, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10) vboxInput.Add(self.indicator2, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10) # panel for plotting the graph vboxOutput = wx.BoxSizer(wx.VERTICAL) canvas = PlotCanvas(panel) canvas.SetEnableLegend(True) canvas.SetEnableDrag(True) canvas.SetShowScrollbars(True) canvas.SetEnableZoom(True) canvas.SetEnableAntiAliasing(True) self.canvas = canvas self.text_out = wx.StaticText(panel, label="no text") vboxOutput.Add(self.canvas, 3, flag=wx.EXPAND) vboxOutput.Add(self.text_out, 1) # sizer for entire frame hboxMain.Add(vboxInput) hboxMain.Add(vboxOutput, 1, flag=wx.EXPAND) panel.SetSizer(hboxMain)