Промених примера от тук, за да използвам вашия пример. Основната промяна е да кажете на метода add_data()
на диаграмата, че имате редове с данни вместо колони, като използвате аргумента на ключовата дума: from_rows=True
. Единствените други промени са номерата на редовете и колоните, за да получите правилните препратки.
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
wb = Workbook(write_only=True)
ws = wb.create_sheet()
rows = [
('Mon/Cat', '2018-08', '2018-09', '2018-10', '2018-11'),
('Cat 101', 885, 3378, 0, 2155),
('Cat 102', 0, 458, 1255, 0),
('Cat 103', 474, 0, 1554, 1655),
('Cat 104', 1250, 250, 502, 845),
]
for row in rows:
ws.append(row)
chart1 = BarChart()
chart1.type = "col"
chart1.style = 10
chart1.grouping = "stacked"
chart1.overlap = 100
chart1.title = "Chart Title"
#chart1.y_axis.title = 'y-axis'
#chart1.x_axis.title = 'x-axis'
data = Reference(ws, min_col=1, min_row=2, max_row=5, max_col=5)
cats = Reference(ws, min_col=2, min_row=1, max_col=5)
chart1.add_data(data, from_rows=True, titles_from_data=True)
chart1.set_categories(cats)
chart1.shape = 4
ws.add_chart(chart1, "A10")
wb.save("bar.xlsx")
person
Aaron
schedule
04.02.2019
from_rows=True
. Документите се основават на поведението по подразбиране в GUI. Подобренията винаги са добре дошли. - person Charlie Clark   schedule 05.02.2019