chart
Notecode
import pathlib
from xlsxdatagrid.xlsxdatagrid import (
wb_from_dataframe,
)
import pandas as pd
def x_squared():
x = range(-5, 6)
y = [_**2 for _ in x]
return pd.DataFrame({"x": x, "y": y})
fpth = pathlib.Path("tests/xl/chart.xlsx")
fpth.parent.mkdir(parents=True, exist_ok=True)
df = x_squared()
workbook, xl_tbl, worksheet = wb_from_dataframe(df, fpth)
chart = workbook.add_chart({"type": "line"})
chart.add_series(
{
"name": "x squared",
"categories": [worksheet.name] + list(xl_tbl.rng_arrays["x"]),
"values": [worksheet.name] + list(xl_tbl.rng_arrays["y"]),
}
)
# Add a chart title and some axis labels.
chart.set_title({"name": "x squared"})
chart.set_x_axis({"name": "x"})
chart.set_y_axis({"name": "y"})
# Set an Excel chart style.
chart.set_style(11)
# Add the chart to the chartsheet.
depth = xl_tbl.gridschema.header_depth + 4
width = len(xl_tbl.gridschema.fields) + 2
worksheet.insert_chart(depth, width, chart)
workbook.close()
print(fpth, fpth.is_file())
#> tests/xl/chart.xlsx True