Beispiel #1
0
def sparklines(data):
    chart = SparkLineChart(300, 200)
    chart.set_axis_labels(Axis.LEFT, [0, max(data)/2, max(data)])
    chart.set_axis_labels(Axis.BOTTOM, range(0,5))
    
    chart.add_data(data)
    return chart.get_url()
    legend_array.append(legend)
    data_array.append(int(data.strip()))

for line in comparefile:
    (legend, data) = line.split(' ')
    data_compared_array.append(int(data.strip()))

chart.add_data(data_array)
chart.add_data(data_compared_array)
chart.add_data([0]*2)

chart.set_colours(['000000'])

chart.add_fill_range('224499', 0, 1)
chart.add_fill_range('339966', 1, 2)
#chart.add_fill_range('76A4FB', 1, 2)

legend_array_stripped = [legend_array[0],
                         legend_array[len(legend_array)/2],
                         legend_array[-1]]

chart.set_axis_labels('x', legend_array_stripped)
chart.set_axis_labels('y', ['0', '150', '300', '450', '600', '750'])

name = os.path.basename(datacompletefile)
chart.set_title(name.split('.')[0].upper() + " - developers in 2010: % commits along project history")

print chart.get_url()

chart.download('images/commits_by_month_compared_2010_'+str(name.split('.')[0])+'.png')
Beispiel #3
0
def generate_graph(tl, small=False):
  
  sources = [tl.maps, tl.shuffles, tl.merges, tl.reducers, tl.waste]
  sources = [[int(c) for c in source.split(',')] for source in sources]
  sources.reverse()

  total = len(sources[0])
  sample = max(total/100, 1)
  actual = min(total, 100)

  # Set the vertical range from 0 to 50

  max_y = 0
  for i in xrange(total):
    max_y = max(max_y, sum(x[i] for x in sources))

  max_y += .05 * max_y
  max_y = round(max_y / 10.0) * 10

  width = 200 if small else 600
  height = 125 if small else 375
  if small:
    chart = SparkLineChart(width, height, y_range=[0, max_y])
  else:
    chart = SimpleLineChart(width, height, y_range=[0, max_y])

  # First value is the highest Y value. Two of them are needed to be
  # plottable.
  chart.add_data([max_y] * 2)

  # 3 sets of real data
  for i, source in enumerate(sources):
    data = [sum(x[t * sample] for x in sources[i:]) for t in xrange(actual)]
    chart.add_data(data)

  # Last value is the lowest in the Y axis.
  chart.add_data([0] * 2)

  chart.set_colours(['FFFFFF','FF3399','6666CC','669933','CC3333','33CCFF','FFFFFF'])

  for i in xrange(7):
    chart.set_line_style(i, 0)

  chart.add_fill_range('FF3399', 1, 2)
  chart.add_fill_range('6666CC', 2, 3)
  chart.add_fill_range('669933', 3, 4)
  chart.add_fill_range('CC3333', 4, 5)
  chart.add_fill_range('33CCFF', 5, 6)

  # Some axis data
  if not small:
    legend = ['','maps','shuffle','merge','reduce','waste','']
    legend.reverse()
    chart.set_legend(legend)
    chart.set_grid(0, 25)
    chart.set_axis_labels(Axis.LEFT, ['', int(max_y/4), int(max_y / 2), int(max_y*3/4), ''])
    chart.set_axis_labels(Axis.BOTTOM, ['', int(total/4), int(total/2), int(total*3/4), ''])

  try:
    return chart.get_url()
  except:
    return '/static/invalid_graph.png'
from pygooglechart import SparkLineChart
from pygooglechart import Axis

fr = CSVReader("C:\utils\RealTemp\RealTempLog.csv")
fr.read(8)

timestamps = []
values = []

# Log interval is 60s
interval = 60*24

# Get every fifth sample
# TODO: Rather get an average of group of five entries?
valueList = fr.readings[-interval::5]

for r in valueList:
    timestamps.append(str(r.timestamp))
    values.append(r.value)
    
chart = SparkLineChart(600, 300, y_range=[20, 80])
chart.add_data(values)
chart.set_axis_range(Axis.BOTTOM, -24, 0)

left_axis = list(range(0, 100 + 1, 25))
left_axis[0] = ''
chart.set_axis_labels(Axis.LEFT, left_axis)

chart.download('../output/output.png')