Changeset 171

Show
Ignore:
Timestamp:
01/27/08 23:32:48 (1 year ago)
Author:
vud1
Message:

"heart rate plot & pie graphs"

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pytrainer/trunk/glade/pytrainer.glade

    r168 r171  
    15811581 
    15821582                              <child> 
    1583                                 <widget class="GtkVBox" id="heartrate_vbox"> 
     1583                                <widget class="GtkVBox" id="heartrate_vbox_"> 
    15841584                                  <property name="visible">True</property> 
    15851585                                  <property name="homogeneous">False</property> 
     
    22232223                                          <property name="relief">GTK_RELIEF_NONE</property> 
    22242224                                          <property name="focus_on_click">True</property> 
     2225                                          <signal name="clicked" handler="on_hrpiebutton_clicked" last_modification_time="Sun, 27 Jan 2008 22:27:26 GMT"/> 
    22252226 
    22262227                                          <child> 
     
    22482249                                          <property name="relief">GTK_RELIEF_NONE</property> 
    22492250                                          <property name="focus_on_click">True</property> 
     2251                                          <signal name="clicked" handler="on_hrplotbutton_clicked" last_modification_time="Sun, 27 Jan 2008 22:27:46 GMT"/> 
    22502252 
    22512253                                          <child> 
     
    22752277 
    22762278                                  <child> 
    2277                                     <placeholder/> 
     2279                                    <widget class="GtkNotebook" id="notebook8"> 
     2280                                      <property name="visible">True</property> 
     2281                                      <property name="show_tabs">False</property> 
     2282                                      <property name="show_border">False</property> 
     2283                                      <property name="tab_pos">GTK_POS_TOP</property> 
     2284                                      <property name="scrollable">False</property> 
     2285                                      <property name="enable_popup">False</property> 
     2286 
     2287                                      <child> 
     2288                                        <widget class="GtkVBox" id="heartrate_vbox"> 
     2289                                          <property name="visible">True</property> 
     2290                                          <property name="homogeneous">False</property> 
     2291                                          <property name="spacing">0</property> 
     2292 
     2293                                          <child> 
     2294                                            <placeholder/> 
     2295                                          </child> 
     2296                                        </widget> 
     2297                                        <packing> 
     2298                                          <property name="tab_expand">False</property> 
     2299                                          <property name="tab_fill">True</property> 
     2300                                        </packing> 
     2301                                      </child> 
     2302 
     2303                                      <child> 
     2304                                        <widget class="GtkLabel" id="label-2147483648"> 
     2305                                          <property name="visible">True</property> 
     2306                                          <property name="label" translatable="yes">label-2147483648</property> 
     2307                                          <property name="use_underline">False</property> 
     2308                                          <property name="use_markup">False</property> 
     2309                                          <property name="justify">GTK_JUSTIFY_LEFT</property> 
     2310                                          <property name="wrap">False</property> 
     2311                                          <property name="selectable">False</property> 
     2312                                          <property name="xalign">0.5</property> 
     2313                                          <property name="yalign">0.5</property> 
     2314                                          <property name="xpad">0</property> 
     2315                                          <property name="ypad">0</property> 
     2316                                          <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
     2317                                          <property name="width_chars">-1</property> 
     2318                                          <property name="single_line_mode">False</property> 
     2319                                          <property name="angle">0</property> 
     2320                                        </widget> 
     2321                                        <packing> 
     2322                                          <property name="type">tab</property> 
     2323                                        </packing> 
     2324                                      </child> 
     2325 
     2326                                      <child> 
     2327                                        <widget class="GtkVBox" id="heartrate_vbox2"> 
     2328                                          <property name="homogeneous">False</property> 
     2329                                          <property name="spacing">0</property> 
     2330 
     2331                                          <child> 
     2332                                            <placeholder/> 
     2333                                          </child> 
     2334                                        </widget> 
     2335                                        <packing> 
     2336                                          <property name="tab_expand">False</property> 
     2337                                          <property name="tab_fill">True</property> 
     2338                                        </packing> 
     2339                                      </child> 
     2340 
     2341                                      <child> 
     2342                                        <widget class="GtkLabel" id="label-2147483647"> 
     2343                                          <property name="visible">True</property> 
     2344                                          <property name="label" translatable="yes">label-2147483647</property> 
     2345                                          <property name="use_underline">False</property> 
     2346                                          <property name="use_markup">False</property> 
     2347                                          <property name="justify">GTK_JUSTIFY_LEFT</property> 
     2348                                          <property name="wrap">False</property> 
     2349                                          <property name="selectable">False</property> 
     2350                                          <property name="xalign">0.5</property> 
     2351                                          <property name="yalign">0.5</property> 
     2352                                          <property name="xpad">0</property> 
     2353                                          <property name="ypad">0</property> 
     2354                                          <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
     2355                                          <property name="width_chars">-1</property> 
     2356                                          <property name="single_line_mode">False</property> 
     2357                                          <property name="angle">0</property> 
     2358                                        </widget> 
     2359                                        <packing> 
     2360                                          <property name="type">tab</property> 
     2361                                        </packing> 
     2362                                      </child> 
     2363                                    </widget> 
     2364                                    <packing> 
     2365                                      <property name="padding">0</property> 
     2366                                      <property name="expand">True</property> 
     2367                                      <property name="fill">True</property> 
     2368                                    </packing> 
    22782369                                  </child> 
    22792370                                </widget> 
  • pytrainer/trunk/pytrainer/gui/drawArea.py

    r170 r171  
    4141                elif type == "plot": 
    4242                        self.drawPlot(xvalues,yvalues,xlabel,ylabel,title,color,zones) 
     43                elif type == "pie": 
     44                        self.drawPie(xvalues,yvalues,xlabel,ylabel,title,color,zones) 
    4345 
    4446        def drawBars(self,xvalues,yvalues,xlabel,ylabel,title,color): 
     
    4850                self.axis.clear() 
    4951                width = 1 
    50                 for i in range(0,len(xvalues)): 
     52                i=0 
     53                for value in xvalues: 
    5154                        if len(xvalues) == 1: 
    5255                                self.axis = self.figure.add_subplot(111) 
     
    5962                 
    6063                        p1 = self.axis.bar(xvalues[i], yvalues[i], width, color=color[i]) 
    61                 p = axvspan(1.25, 100.55, facecolor='g', alpha=0.5) 
     64                        i+=1 
    6265                self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea 
    6366                self.canvas.show() 
     
    6770                self.canvas.destroy() 
    6871                self.figure = Figure(figsize=(6,4), dpi=72) 
    69                 self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea 
    70                 self.axis.clear() 
     72                #self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea 
     73                #self.axis.clear() 
    7174                i = 0 
    7275                for value in xvalues: 
     
    8992                self.vbox.pack_start(self.canvas, True, True) 
    9093         
     94        def drawPie(self,xvalues,yvalues,xlabel,ylabel,title,color,zones=None): 
     95                self.canvas.destroy() 
     96                self.figure = Figure(figsize=(6,4), dpi=72) 
     97                #self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea 
     98                #self.axis.clear() 
     99                self.axis = self.figure.add_subplot(111) 
     100 
     101                labels = ["rest"] 
     102                colors = ["#ffffff"] 
     103                frac0 = 0 
     104                frac1 = 0 
     105                frac2 = 0 
     106                frac3 = 0 
     107                frac4 = 0 
     108                frac5 = 0 
     109                for zone in zones: 
     110                        labels.append(zone[3]) 
     111                        colors.append(zone[2]) 
     112         
     113                for value in yvalues[0]: 
     114                        if value < zones[4][0]: 
     115                                frac0+=1 
     116                        elif value > zones[4][0] and value < zones[4][1]: 
     117                                frac1+=1 
     118                        elif value > zones[3][0] and value < zones[3][1]: 
     119                                frac2+=1 
     120                        elif value > zones[2][0] and value < zones[2][1]: 
     121                                frac3+=1 
     122                        elif value > zones[1][0] and value < zones[1][1]: 
     123                                frac4+=1 
     124                        elif value > zones[0][0] and value < zones[0][1]: 
     125                                frac5+=1 
     126                         
     127                fracs = [frac0,frac1,frac2,frac3,frac4, frac5] 
     128                explode=(0, 0, 0, 0,0,0) 
     129                self.axis.pie(fracs, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True) 
     130 
     131                self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea 
     132                self.canvas.show() 
     133                self.vbox.pack_start(self.canvas, True, True) 
     134 
    91135        def drawDefault(self): 
    92                 self.axis.clear() 
     136                #self.axis.clear() 
    93137                self.axis=self.figure.add_subplot(111) 
    94138                self.axis.set_xlabel('Yepper') 
  • pytrainer/trunk/pytrainer/gui/windowmain.py

    r167 r171  
    9999        def createGraphs(self,RecordGraph,DayGraph,MonthGraph,YearGraph,HeartRateGraph): 
    100100                self.drawarearecord = RecordGraph(self.record_vbox, self.record_combovalue, self.record_combovalue2) 
    101                 self.drawareaheartrate = HeartRateGraph(self.heartrate_vbox
     101                self.drawareaheartrate = HeartRateGraph(self.heartrate_vbox,self.heartrate_vbox2
    102102                #self.drawareaday = DayGraph(self.day_vbox, self.day_combovalue) 
    103103                self.day_vbox.hide() 
     
    675675                id_waypoint = selected.get_value(iter,0) 
    676676                self.parent.removeWaypoint(id_waypoint) 
    677          
     677 
     678        def on_hrpiebutton_clicked(self,widget): 
     679                self.heartrate_vbox2.show()      
     680                self.heartrate_vbox.hide()       
     681         
     682        def on_hrplotbutton_clicked(self,widget): 
     683                self.heartrate_vbox.show()       
     684                self.heartrate_vbox2.hide()      
  • pytrainer/trunk/pytrainer/heartrategraph.py

    r170 r171  
    2222 
    2323class HeartRateGraph: 
    24         def __init__(self, vbox = None): 
     24        def __init__(self, vbox = None, vbox2 = None): 
    2525                self.drawarea = DrawArea(vbox) 
     26                self.drawarea2 = DrawArea(vbox2) 
    2627                self.conf = checkConf() 
    2728                self.filename = self.conf.getValue("conffile") 
     
    5657                zones = [zone5,zone4,zone3,zone2,zone1] 
    5758         
    58                 value_selected = -1 
    59                 if value_selected < 0: 
    60                         value_selected = 0 
    61                 if value_selected == 0: 
    62                         xvalues, yvalues = self.get_values(values,value_selected) 
    63                         xlabel,ylabel,title,color = self.get_value_params(value_selected) 
    64                         self.drawarea.stadistics("plot",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color],zones) 
     59                xvalues, yvalues = self.get_values(values) 
     60                xlabel,ylabel,title,color = _("Distance (km)"),_("Beats (bpm)"),_("Heart Rate"),"#740074" 
     61                self.drawarea.stadistics("plot",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color],zones) 
     62                self.drawarea2.stadistics("pie",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color],zones) 
    6563 
    66         def get_value_params(self,value): 
    67                 if value == 0: 
    68                         return _("Distance (km)"),_("Beats (bpm)"),_("Heart Rate"),"#740074" 
    69  
    70  
    71         def get_values(self,values, value_selected): 
     64        def get_values(self,values): 
    7265                xvalue = [] 
    7366                yvalue = [] 
    7467                for value in values: 
    7568                        xvalue.append(value[0]) 
    76                         if value_selected==0: 
    77                                 yvalue.append(value[6]) 
     69                        yvalue.append(value[6]) 
    7870                return xvalue,yvalue 
    7971