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