From: <jb...@us...> - 2009-11-29 01:30:40
|
Revision: 410 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=410&view=rev Author: jblance Date: 2009-11-29 01:30:31 +0000 (Sun, 29 Nov 2009) Log Message: ----------- Fixes for average heart rate, changes to graph labels and titles Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/pytrainer/gui/drawArea.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/monthgraph.py pytrainer/trunk/pytrainer/weekgraph.py pytrainer/trunk/pytrainer/yeargraph.py Modified: pytrainer/trunk/glade/pytrainer.glade =================================================================== --- pytrainer/trunk/glade/pytrainer.glade 2009-11-29 00:19:32 UTC (rev 409) +++ pytrainer/trunk/glade/pytrainer.glade 2009-11-29 01:30:31 UTC (rev 410) @@ -5015,10 +5015,10 @@ <child> <widget class="GtkComboBoxEntry" id="week_combovalue"> <property name="visible">True</property> - <property name="items" translatable="yes">Kilometers + <property name="items" translatable="yes">Distance Time -Beats -Average +Average Heart Rate +Average Speed Calories</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> @@ -5061,10 +5061,10 @@ <widget class="GtkComboBoxEntry" id="week_combovalue2"> <property name="visible">True</property> <property name="items" translatable="yes">None -Kilometers +Distance Time -Beats -Average +Average Heart Rate +Average Speed Calories</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> @@ -6157,10 +6157,10 @@ <child> <widget class="GtkComboBoxEntry" id="month_combovalue"> <property name="visible">True</property> - <property name="items" translatable="yes">Kilometers + <property name="items" translatable="yes">Distance Time -Beats -Average +Average Heart Rate +Average Speed Calories</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> @@ -6203,10 +6203,10 @@ <widget class="GtkComboBoxEntry" id="month_combovalue2"> <property name="visible">True</property> <property name="items" translatable="yes">None -Kilometers +Distance Time -Beats -Average +Average Heart Rate +Average Speed Calories</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> @@ -7313,10 +7313,10 @@ <child> <widget class="GtkComboBoxEntry" id="year_combovalue"> <property name="visible">True</property> - <property name="items" translatable="yes">Kilometers + <property name="items" translatable="yes">Distance Time -Beats -Average +Average Heart Rate +Average Speed Calories</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> @@ -7359,10 +7359,10 @@ <widget class="GtkComboBoxEntry" id="year_combovalue2"> <property name="visible">True</property> <property name="items" translatable="yes">None -Kilometers +Distance Time -Beats -Average +Average Heart Rate +Average Speed Calories</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> Modified: pytrainer/trunk/pytrainer/gui/drawArea.py =================================================================== --- pytrainer/trunk/pytrainer/gui/drawArea.py 2009-11-29 00:19:32 UTC (rev 409) +++ pytrainer/trunk/pytrainer/gui/drawArea.py 2009-11-29 01:30:31 UTC (rev 410) @@ -88,7 +88,7 @@ pass axis.grid(True) - axis.set_title("%s" %(ylabel[0])) + axis.set_title("%s" %(title[0])) for tl in axis.get_yticklabels(): tl.set_color('%s' %color[0]) @@ -109,7 +109,7 @@ pass for tl in ax2.get_yticklabels(): tl.set_color('%s' %color[1]) - axis.set_title("%s vs %s" %(ylabel[0],ylabel[1])) + axis.set_title("%s vs %s" %(title[0],title[1])) tickLocations = [x+0.5 for x in xrange(0, numCols)] axis.set_xticks(tickLocations) @@ -150,8 +150,8 @@ def drawStackedBars(self,xvalues,yvalues,ylabel,title, valuesAreTime=False): '''function to draw stacked bars - xvalues needs to be a list of strings, e.g. [0]["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - yvalues needs to be a dict e.g. [0]{'Kayak': {'Tue': 10.08, 'Fri': 17.579999999999998, 'Thu': 15.66, 'Sat': 30.619999999999997}, {'Run': {'Mon': 9.65, 'Sun': 15.59}} + xvalues needs to be a list of lists of strings, e.g. [0]["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] + yvalues needs to be a list of dicts e.g. [0]{'Kayak': {'Tue': 10.08, 'Fri': 17.579999999999998, 'Thu': 15.66, 'Sat': 30.619999999999997}, {'Run': {'Mon': 9.65, 'Sun': 15.59}} ''' #TODO tidy logging.debug('>>') @@ -242,11 +242,12 @@ #print "ax2", xvals, yheights, ybottoms ax2.bar(xvals, yheights, bottom=ybottoms, width=barWidth, color=color, align='edge', label=key) else: #Only zero results + ax2.bar(xvals, [0]*numCols, bottom=[0]*numCols, width=barWidth, color=color, align='edge', label=key) pass ax2.set_xticklabels('' * len(xvalues[1])) ax2.set_ylabel(ylabel[1]) ax2.legend(loc=0) - plt.title("%s vs %s" %(ylabel[0],ylabel[1])) + plt.title("%s vs %s" %(title[0],title[1])) ## try to do some table stuff colLabels = xvalues[0] Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-11-29 00:19:32 UTC (rev 409) +++ pytrainer/trunk/pytrainer/main.py 2009-11-29 01:30:31 UTC (rev 410) @@ -93,7 +93,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.6.0.9_svn#409" + self.version ="1.6.0.9_svn#410" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? Modified: pytrainer/trunk/pytrainer/monthgraph.py =================================================================== --- pytrainer/trunk/pytrainer/monthgraph.py 2009-11-29 00:19:32 UTC (rev 409) +++ pytrainer/trunk/pytrainer/monthgraph.py 2009-11-29 01:30:31 UTC (rev 410) @@ -60,19 +60,19 @@ yval.append(yvalues) xlab.append(xlabel) ylab.append(ylabel) - tit.append("") + tit.append(title) col.append(color) self.drawarea.stadistics("bars",xval,yval,xlab,ylab,tit,col) def get_value_params(self,value): if value == 0: - return _("day"),_("Kilometers"),_("Daily kilometers"),"y" + return _("day"),_("Distance (km)"),_("Daily Distance"),"y" elif value == 1: - return _("day"),_("Time in Hours"), _("Daily Time"),"b" + return _("day"),_("Time (hours)"), _("Daily Time"),"b" elif value == 2: - return _("day"),_("Beats per Minute"), _("Daily Beats"),"r" + return _("day"),_("Average Heart Rate (bpm)"), _("Daily Average Heart Rate"),"r" elif value == 3: - return _("day"),_("Average (km/h)"), _("Daily Averages"),"g" + return _("day"),_("Average Speed (km/h)"), _("Daily Average Speed"),"g" elif value == 4: return _("day"),_("Calories"), _("Daily Calories"),"b" @@ -103,12 +103,13 @@ year,month,day = date.split("-") #si es una opcion de suma de absolutos / if it is an option of sum of absolute - if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): - list_values[int(day)] += graph_value - #si se trata de calcular medias / if one is to calculate averages: - else: - list_values[int(day)] += graph_value - list_average[int(day)] += 1 + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + list_values[int(day)] += graph_value + #si se trata de calcular medias / if one is to calculate averages: + else: + if graph_value is not None and graph_value != 0: + list_values[int(day)] += graph_value + list_average[int(day)] += 1 xunits = [] yunits = [] Modified: pytrainer/trunk/pytrainer/weekgraph.py =================================================================== --- pytrainer/trunk/pytrainer/weekgraph.py 2009-11-29 00:19:32 UTC (rev 409) +++ pytrainer/trunk/pytrainer/weekgraph.py 2009-11-29 01:30:31 UTC (rev 410) @@ -108,15 +108,15 @@ def get_value_params(self,value): if value == 0: - return _("Kilometers"),_("Weekly kilometers") + return _("Distance (km)"),_("Daily Distance") elif value == 1: - return _("Time in Hours"), _("Weekly Time") + return _("Time (hours)"), _("Daily Time") elif value == 2: - return _("Beats per Minute"), _("weekly Beats") + return _("Average Heart Rate (bpm)"), _("Daily Average Heart Rate") elif value == 3: - return _("Average Speed (km/h)"), _("Weekly Speed Averages") + return _("Average Speed (km/h)"), _("Daily Average Speed") elif value == 4: - return _("Calories"), _("Weekly Calories") + return _("Calories"), _("Daily Calories") def getValue(self,record,value_selected): #hacemos una relacion entre el value_selected y los values / we make a relation between value_selected and the values Modified: pytrainer/trunk/pytrainer/yeargraph.py =================================================================== --- pytrainer/trunk/pytrainer/yeargraph.py 2009-11-29 00:19:32 UTC (rev 409) +++ pytrainer/trunk/pytrainer/yeargraph.py 2009-11-29 01:30:31 UTC (rev 410) @@ -61,21 +61,21 @@ yval.append(yvalues) xlab.append(xlabel) ylab.append(ylabel) - tit.append("") + tit.append(title) col.append(color) self.drawarea.stadistics("bars",xval,yval,xlab,ylab,tit,col) def get_value_params(self,value): if value == 0: - return 12,_("month"),_("kilometers"),_("monthly kilometers"),"y" + return 12,_("month"),_("Distance (km)"),_("Monthly Distance"),"y" elif value == 1: - return 12,_("month"),_("time in hours"), _("monthly time"),"b" + return 12,_("month"),_("Time (hours)"), _("Monthly Time"),"b" elif value == 2: - return 12,_("month"),_("beats per minute"), _("monthly beats"),"r" + return 12,_("month"),_("Average Heart Rate (bpm)"), _("Monthly Average Heart Rate"),"r" elif value == 3: - return 12,_("month"),_("average (hm/h)"), _("monthly averages"),"g" + return 12,_("month"),_("Average Speed (km/h)"), _("Monthly Average Speed"),"g" elif value == 4: - return 12,_("month"),_("calories"), _("monthly calories"),"b" + return 12,_("month"),_("Calories"), _("Monthly Calories"),"b" def get_values(self,values,value_selected,monthsnumber): #hacemos una relacion entre el value_selected y los values @@ -87,61 +87,46 @@ 4: 6 #value 4 es calorias(6) } list_values = {} - km_total = {} - tm_total = {} list_average = {} - i = 1 - while i < 13: - list_values[i] = 0 - list_average[i] = 0 + tm_total = {} + for i in range(1,monthsnumber+1): + list_values[i]=0 + list_average[i]=0 tm_total[i] = 0 - i += 1 value_sel = conv[value_selected] - log = [] for value in values: date = value[0] year,month,day = date.split("-") month = int(month) - #si la opcion es tiempo lo pasamos a horas + #si la opcion es tiempo lo pasamos a horas / if the option is time we passed it to hours if (value_sel == 2): graph_value = self.getFloatValue(value[value_sel])/3600 - #Si la opcion es la media tenemos que recalcular km y tiempo total - elif (value_sel == 5): - graph_value = self.getFloatValue(value[1]) else: graph_value = self.getFloatValue(value[value_sel]) - #si es una opcion de suma de absolutos: - if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + #si es una opcion de suma de absolutos / if it is an option of sum of absolute + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): list_values[int(month)] += graph_value - - #Si es pa la media de velocidad - elif (value_selected == 3): - list_values[int(month)] += graph_value - tm_total[int(month)] += self.getFloatValue(value[2]) - - #si se trata de calcular medias: + #si se trata de calcular medias / if one is to calculate averages: else: - list_values[int(month)] += graph_value - list_average[int(month)] += 1 - + if graph_value is not None and graph_value != 0: + list_values[int(month)] += graph_value + list_average[int(month)] += 1 + xunits = [] yunits = [] for i in range (0,monthsnumber): xunits.append(unicode(calendar.month_abbr[i+1])) - #xunits.append(i) yunits.append(float(0)) - for i in list_values: - if list_average[i] > 0: - val = list_values[i]/list_average[i] - if tm_total[i] > 0: - val = list_values[i]/(tm_total[i]/3600) + for value in list_values: + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + yunits[value-1] = list_values[value] else: - val = list_values[i] - yunits[i-1] = val - return xunits,yunits + if list_average[value]>0: + yunits[value-1] = list_values[value]/list_average[value] + return xunits,yunits def getFloatValue(self, value): try: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |