Exemplo n.º 1
0
def main(args):
    roomsize_message_count = Counter()

    def accum(dct):
        roomsize_message_count[int(dct['num_recipients'])] += 1

    ReadCSVFile(args.file, accum)

    if args.max_roomsize:
        sizes = [args.max_roomsize]
    else:
        sizes = sorted(roomsize_message_count.keys())

    points = []
    for size in sizes:
        points.append((size, (args.price_per_xmpp * calculate_messages(
            roomsize_message_count, size, args.ignore_large_rooms))))

    if args.csv:
        for p in points:
            print '%s,%s' % p
    else:
        x = [q[0] for q in points]
        y = [q[1] for q in points]
        from pygooglechart import XYLineChart, Axis
        chart = XYLineChart(400, 400)
        chart.add_data(x)
        chart.add_data(y)
        #        chart.set_axis_labels(Axis.BOTTOM, 'max users/channel')
        #        chart.set_axis_labels(Axis.LEFT, 'approx cost / week')
        print chart.get_url() + '&chxt=x,y'

    return 0
Exemplo n.º 2
0
def xy_rect():
    chart = XYLineChart(settings.width,
                        settings.height,
                        x_range=(0, 100),
                        y_range=(0, 100))
    chart.add_data([10, 90, 90, 10, 10])
    chart.add_data([10, 10, 90, 90, 10])
    chart.download('line-xy-rect.png')
Exemplo n.º 3
0
def xy_random():
    chart = XYLineChart(settings.width,
                        settings.height,
                        x_range=(0, 100),
                        y_range=(0, 100))
    chart.add_data(helper.random_data())
    chart.add_data(helper.random_data())
    chart.download('line-xy-random.png')
Exemplo n.º 4
0
def xy_circle():
    chart = XYLineChart(settings.width, settings.height)
    steps = 40
    xradius = 25
    yradius = 45
    xmid = 50
    ymid = 50
    xlist = []
    ylist = []
    for angle in xrange(0, steps + 1):
        angle = float(angle) / steps * math.pi * 2
        xlist.append(math.cos(angle) * xradius + xmid)
        ylist.append(math.sin(angle) * yradius + ymid)
    chart.add_data(xlist)
    chart.add_data(ylist)
    chart.download('line-xy-circle.png')
Exemplo n.º 5
0
def make_graph(x_axis, data, color_vertically=True):
    x_axis = x_axis[:]
    data = data[:]

    max_y_value = 24500000
    max_y = 24500000
    min_time = min(x_axis)
    max_time = max(x_axis)

    chart = XYLineChart(700,
                        400,
                        x_range=[min_time, max_time],
                        y_range=[0, max_y_value])

    chart.set_axis_labels(Axis.LEFT, ['', max_y_value])

    start_time = datetime.fromtimestamp(min(x_axis)).strftime("%H:%M")
    end_time = datetime.fromtimestamp(max(x_axis)).strftime("%H:%M")
    chart.set_axis_labels(Axis.BOTTOM, [start_time, end_time])

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

    #print max_y, min_time, max_time
    prev_y = [0] * 2
    for bar in data[::-1]:
        Y = bar
        if not Y:
            Y = prev_y
        #print "X", idx, X
        #print "Y", idx, Y
        chart.add_data(x_axis)
        chart.add_data(Y)
        prev_y = Y

    chart.add_data([min_time, max_time])
    chart.add_data([0] * 2)

    # Black lines
    chart.set_colours(['000000'] * 5)

    color_chart_vertically(chart, data)

    print chart.get_url()
    return chart
Exemplo n.º 6
0
def novidomejni_grafik():
    """По датум последните 30 дена колку нови домејни имало."""

    c1 = conn.cursor()
    c1.execute(
        "select datum, novidomejni from novidomejni order by datum desc limit 30"
    )

    novi = [x for x in c1]
    novi.sort()

    datumi = [x[0] for x in novi]
    ipsilonoska = [int(x[1]) for x in novi]  # kolku novi
    iksoska = [x for x in range(0, len(datumi))]

    xmax = len(iksoska)
    ymax = max([int(a[1]) for a in novi])

    chart = XYLineChart(800, 300, x_range=(0, xmax - 1), y_range=(0, ymax))

    chart.add_data(iksoska)
    chart.add_data(ipsilonoska)

    for x in range(0, len(datumi)):
        if x % 2:
            datumi[x] = ''

    ipsilon = [x for x in range(0, ymax + 1)]
    for y in range(0, ymax + 1):
        if y % 2:
            ipsilon[y] = ''
    ipsilon[0] = ''
    ipsilon[-1] = ymax

    chart.set_axis_labels(Axis.BOTTOM, datumi)
    chart.set_axis_labels(Axis.LEFT, ipsilon)
    chart.set_title("Број на нови .mk домени по денови|")

    return chart.get_url()
Exemplo n.º 7
0
d = start
pos = 0
step = timedelta(days=1)
while d != end:
    if d in deadlines:
        deadlines[d] = pos
    d += step
    pos += 1
    if d not in data:
        data[d] = 0
rows = sorted(data.items())

title = str(sum(
    data.values())) + ' partecipanti al PyCon Tre - ' + start.strftime(
        '%d %b %Y') + ' / ' + end.strftime('%d %b %Y')
chart = XYLineChart(width=1000, height=300, title=title, y_range=[0, 420])
x_values = range(len(rows))

chart.add_data(x_values)
row = []
total = 0
for d, count in rows:
    total += count
    row.append(total)
chart.add_data(row)

chart.add_data(x_values)
chart.add_data([x[1] for x in rows])

chart.add_data(x_values)
chart.add_data([0] * len(x_values))
 def __init__(self):
     self.chart = XYLineChart(750, 400)
Exemplo n.º 9
0
def xy_random():
    chart = XYLineChart(width, height, x_range=(0, 100), y_range=(0, 100))
    chart.add_data(random_data())
    chart.add_data(random_data())
    chart.download('line-xy-random.png')