How to fill faces with gradient colors in a chart?
Code:
#Set Fill Properties 3 - Gradient Fill
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
from openpyxl.chart.series import DataPoint
from openpyxl.chart.shapes import GraphicalProperties
from openpyxl.drawing.fill import GradientFillProperties,GradientStop
from openpyxl.drawing.line import LineProperties
from openpyxl.drawing.colors import ColorChoice
# Create a new workbook and worksheet
wb=Workbook()
ws=wb.active
# Create a chart object
chart=BarChart()
# Set chart data
data=[
['Category', 'Value'],
['A', 10],
['B', 15],
['C', 7],
['D', 20]
]
#Add data to the worksheet
for row in data:
ws.append(row)
# Define chart data range
data_range=Reference(ws, min_col=2, min_row=1, max_col=2, max_row=5)
# Add data series to the chart
series=chart.add_data(data_range, titles_from_data=True)
#Apply multi-color gradient fill
chart.series[0].spPr=GraphicalProperties(
ln=LineProperties(solidFill='FFFFFF'),
gradFill=GradientFillProperties(
gsLst=(GradientStop(prstClr='blue',pos=0),
GradientStop(prstClr='white',pos=50000),
GradientStop(prstClr='blue',pos=100000))
)
)
chart.y_axis.majorGridlines=None
# Insert the chart into the worksheet
ws.add_chart(chart, 'E3')
# Save the workbook
wb.save('test.xlsx')
