Example #1
0
def add_chart(chart_sheet, data_key, mean_col, avg_col, write_sheet,
              date_range, data_types, col_choice, offset):
    c = LineChart()
    c.display_blanks = 'span'
    c.title = data_key.upper()
    c.style = 2
    c.x_axis.title = 'Date'
    c.x_axis = DateAxis(crossAx=100)
    c.y_axis.crossAx = 500
    c.x_axis.number_format = 'm/d/y'
    c.x_axis.majorTimeUnit = 'months'
    avg_mean_data = Reference(write_sheet,
                              min_col=avg_col,
                              max_col=avg_col,
                              min_row=1,
                              max_row=date_range + 1)
    mean_data = Reference(write_sheet,
                          min_col=mean_col,
                          max_col=mean_col,
                          min_row=1,
                          max_row=date_range + 1)
    c.add_data(avg_mean_data, titles_from_data=True)
    c.add_data(mean_data, titles_from_data=True)
    dates = Reference(write_sheet,
                      min_col=1,
                      max_col=1,
                      min_row=2,
                      max_row=date_range + 1)
    c.set_categories(dates)

    # Add to either col A or col J
    if not col_choice:
        chart_sheet.add_chart(
            c, 'A' + str(15 * (data_types[data_key] - 3) + 1 - offset * 14))
    else:
        chart_sheet.add_chart(
            c, 'J' + str(15 * (data_types[data_key] - 4) + 1 - offset * 14))
        offset += 1
    return offset