コード例 #1
0
ファイル: plot.py プロジェクト: ValdrST/VpostHorde
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()
コード例 #2
0
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())
コード例 #3
0
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())
コード例 #4
0
    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)