Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from openpyxl.chart import ScatterChart, Reference, Series
- from openpyxl.chart.axis import DateAxis
- import pandas as pd
- def generate_chart_proyeccion(writer_sheet, col_to_graph, start_row, end_row, title):
- """
- Construct a new chart object
- :param writer_sheet: Worksheet were is data located
- :param col_to_graph: Column of data to be plotted
- :param start_row: Row where data starts
- :param end_row: Row where data ends
- :param title: Chart title
- :return: returns a chart object
- """
- chart = ScatterChart()
- chart.title = title
- # chart.x_axis = DateAxis(crossAx=100)
- chart.x_axis.number_format = 'd-mmm HH:MM'
- chart.x_axis.majorTimeUnit = "days"
- chart.x_axis.title = "Fecha"
- chart.y_axis.title = "Valor"
- chart.legend.position = "b"
- chart.width = 5
- data = Reference(writer_sheet, min_col=col_to_graph, max_col=col_to_graph, min_row=start_row, max_row=end_row)
- data_dates = Reference(writer_sheet, min_col=1, max_col=1, min_row=start_row, max_row=end_row) # Corresponde a la columna con la fecha
- serie = Series(data, data_dates, title_from_data=True)
- chart.series.append(serie)
- return chart
- # Escribo datos en excel
- writer = pd.ExcelWriter("archivo.xlsx", engine='openpyxl')
- df = pd.DataFrame(np.random.randn(1000,1), columns=['Dato'], index=pd.date_range('20130101',periods=1000,freq='T'))
- df.to_excel(writer, sheet_name="Sheet1", startrow=start_row)
- start_row = 1 # En que fila empezar a escribir en excel
- end_row = start_row + len(df)
- chart = generate_chart_proyeccion(writer.sheets["Sheet1"], 2, start_row, end_row, "A title")
- # Añado gráfico a excel
- writer.sheets["Sheet1"].add_chart(chart, "C2")
- writer.save()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement