Ejemplo n.º 1
0
def category_budget_left_pie(c, category, h, w):
    my_data = []
    for x in range(1, month + 1):
        my_data.append(data.category_data(category, x, year))
    labels = month_name[1:month + 1]
    labels.append('Budget')
    my_data.append(data.category_budget(category) - sum(my_data))
    d = Drawing()
    pie = Pie()
    pie.sideLabels = 1
    pie._seriesCount = 10
    #if legend:
    #    add_legend(d, pie, data)
    pie.x = 0
    pie.y = 0
    pie.width = 100
    pie.height = pie.width
    pie.data = my_data
    pie.slices.fontName = serif_font
    pie.slices.fontSize = 11
    pie.labels = labels
    pie.slices.strokeWidth = 0.5
    #pie.slices[3].popout = 20
    d.add(pie)
    d.drawOn(c, h, w)
Ejemplo n.º 2
0
def category_predicted_spending(c, category, h, w):
    """
    Creates a bar graph in a PDF
    """
    my_data = []
    for i in range(1, month + 1):
        my_data.append(round(data.category_data(category, i, year)))
    budget = data.category_budget(category)
    re_budget = (budget - sum(my_data)) / (12 - month)
    for x in range(month, 12):
        my_data.append(re_budget)

    d = Drawing(0, 0)
    bar = VerticalBarChart()
    bar.x = 150
    bar.y = 150
    bar.data = [my_data]
    bar.valueAxis.valueMin = 0
    bar.categoryAxis.categoryNames = [
        'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
        'Nov', 'Dec'
    ]
    bar.categoryAxis.labels.fontName = serif_font
    bar.valueAxis.labels.fontName = serif_font
    bar.categoryAxis.labels.boxAnchor = 'n'
    bar.categoryAxis.labels.angle = 90
    bar.categoryAxis.labels.dy = -15
    bar.categoryAxis.labels.dx = -10
    #below change monnth number based upon current month
    bar.bars[0].fillColor = PCMYKColor(150, 150, 150, 150, alpha=85)
    for i in range(month, 12):
        bar.bars[(0, i)].fillColor = PCMYKColor(0, 150, 150, 0, alpha=85)
    d.add(bar, '')
    d.drawOn(c, h, w)
Ejemplo n.º 3
0
def monthly_spending_bar(c, category, h, w):
    """
    Creates a bar graph in a PDF
    """
    my_data = []
    for i in range(1, 12 + 1):
        my_data.append(data.category_data(category.lower(), i, year))
    for i in range(month, 12):
        my_data[i] = 0
    #d = Drawing(300, 250)
    d = Drawing(0, 0)
    bar = VerticalBarChart()
    bar.x = 150
    bar.y = 150
    bar.data = [my_data]
    bar.valueAxis.valueMin = 0
    bar.categoryAxis.categoryNames = [
        'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
        'Nov', 'Dec'
    ]
    bar.categoryAxis.labels.fontName = serif_font
    bar.valueAxis.labels.fontName = serif_font
    bar.categoryAxis.labels.boxAnchor = 'n'
    bar.categoryAxis.labels.angle = 90
    bar.categoryAxis.labels.dy = -15
    bar.categoryAxis.labels.dx = -10
    #below change monnth number based upon current month
    bar.bars[0].fillColor = PCMYKColor(150, 150, 150, 150, alpha=85)
    bar.bars[(0, month - 1)].fillColor = PCMYKColor(150, 0, 0, 0, alpha=85)
    d.add(bar, '')
    d.drawOn(c, 200, 480)
Ejemplo n.º 4
0
def overview_month_spending_breakdown_pie(c, h, w):
    categories = [
        'Clothing', 'Transport', 'Insurance', 'Food', 'Medical and Dental',
        'Housing', 'Utilities', 'Education', 'Gifts', 'Entertainment'
    ]
    d = Drawing()
    pie = Pie()
    pie.sideLabels = 1
    pie._seriesCount = 10
    my_data = []
    for x in categories:
        my_data.append(data.category_data(x.lower(), month, 2019))
    pie.x = 0
    pie.y = 0
    pie.width = 100

    pie.height = pie.width
    pie.data = my_data
    pie.slices.fontName = serif_font
    pie.slices.fontSize = 11
    pie.labels = tuple(categories)
    pie.slices.strokeWidth = 0.5
    #pie.slices[3].popout = 20
    d.add(pie)
    d.drawOn(c, h, w)
def get_data(source='movies', target=None):
    data = None
    if '{}{}'.format(source,
                     target) not in listdir('{}/processedData/'.format(ROOT)):
        data = category_data(source, target=target)
        pickle.dump(
            data,
            open('{}/processedData/{}{}'.format(ROOT, source, target), 'w'))
    else:
        data = pickle.load(
            open('{}/processedData/{}{}'.format(ROOT, source, target)))
    return data
def get_data():
    source, target = 'electronics', 'movies'
    data = None
    if '{}{}'.format(source,
                     target) not in listdir('{}/processedData/'.format(ROOT)):
        data = category_data(source, autoencoder=False, target=target)
        pickle.dump(
            data,
            open('{}/processedData/{}{}'.format(ROOT, source, target), 'w'))
    else:
        data = pickle.load(
            open('{}/processedData/{}{}'.format(ROOT, source, target)))
    return data
def main(args):
    mode, src, dest = None, None, None
    if len(args) == 2: mode, preload = args
    elif len(args) == 4: mode, preload, src, dest = args
    else: raise ValueError('Incorrect number of args.')

    if preload == 'none': preload = None
    if mode == 'vis':
        data = get_data()
        model = init_model(
            data=[data['embedding_matrix'], data['len_word_index']])
        return visualizer(model)
    if mode == 'train':
        return runner(50)
    if mode == 'confusion':
        model = init_model(preload=preload, declare=False)
        data = category_data(src, target=dest)
        y_true = data['y_val']
        y_pred = model.predict(data['x_val'])
        print get_confusion_matrix(y_true, y_pred)
    else:
        raise ValueError('Incorrect mode')