--- /dev/null
+--- glyph.py.orig 2011-11-24 01:51:01.000000000 +0000
++++ glyph.py 2011-11-24 01:53:12.000000000 +0000
+@@ -314,7 +314,7 @@
+ 'minorGridLineColor','thickness','min','max', \
+ 'graphOnly','yMin','yMax','yLimit','yStep','areaMode', \
+ 'areaAlpha','drawNullAsZero','tz', 'yAxisSide','pieMode', \
+- 'yUnitSystem')
++ 'yUnitSystem', 'yAxisType')
+ validLineModes = ('staircase','slope')
+ validAreaModes = ('none','first','all','stacked')
+ validPieModes = ('maximum', 'minimum', 'average')
+@@ -326,6 +326,7 @@
+ params['hideGrid'] = True
+ params['hideAxes'] = True
+ params['yAxisSide'] = 'left'
++ params['yAxisType'] = 'linear'
+ params['title'] = ''
+ params['vtitle'] = ''
+ params['margin'] = 0
+@@ -345,6 +346,8 @@
+ params['yAxisSide'] = 'left'
+ if 'yUnitSystem' not in params:
+ params['yUnitSystem'] = 'si'
++ if 'yAxisType' not in params:
++ params['yAxisType'] = 'linear'
+ self.params = params
+ # When Y Axis is labeled on the right, we subtract x-axis positions from the max,
+ # instead of adding to the minimum
+@@ -642,17 +645,30 @@
+ ySpan, spanPrefix = format_units(self.ySpan, self.yStep,
+ system=self.params.get('yUnitSystem'))
+
+- if ySpan > 10 or spanPrefix != prefix:
+- return "%d %s " % (int(yValue), prefix)
++ if self.params.get('yAxisType') == 'linear':
++ if ySpan > 10 or spanPrefix != prefix:
++ return "%d %s " % (int(yValue), prefix)
+
+- elif ySpan > 3:
+- return "%.1f %s " % (float(yValue), prefix)
++ elif ySpan > 3:
++ return "%.1f %s " % (float(yValue), prefix)
+
+- elif ySpan > 0.1:
+- return "%.2f %s " % (float(yValue), prefix)
++ elif ySpan > 0.1:
++ return "%.2f %s " % (float(yValue), prefix)
+
+- else:
+- return "%g %s" % (float(yValue), prefix)
++ else:
++ return "%g %s" % (float(yValue), prefix)
++ elif self.params.get('yAxisType') == 'log':
++ if ySpan > 10 or spanPrefix != prefix:
++ return "%d %s " % (math.pow(10,int(yValue)), prefix)
++
++ elif ySpan > 3:
++ return "%.1f %s " % (math.pow(10,float(yValue)), prefix)
++
++ elif ySpan > 0.1:
++ return "%.2f %s " % (math.pow(10,float(yValue)), prefix)
++
++ else:
++ return "%g %s " % (math.pow(10,float(yValue)), prefix)
+
+ self.yLabelValues = list( frange(self.yBottom,self.yTop,self.yStep) )
+ self.yLabels = map(makeLabel,self.yLabelValues)