【发布时间】:2020-02-12 16:56:01
【问题描述】:
我正在尝试创建一个饼图,其中数据在行中,标签在列中。我想在第 2 行和第 4 列绘制数据。但是当我运行时,它只选择两列。下面是代码:
from openpyxl import Workbook
from openpyxl.chart import (
PieChart,
ProjectedPieChart,
Reference
)
from openpyxl.chart.series import DataPoint
data = [
['Pie', 'Sold','Added','New','extra'],
['Apple', 50,3,4,5],
['Cherry', 30,5,6,7],
['Pumpkin', 10,7,8,99],
['Chocolate', 40,10,29,23],
]
wb = Workbook()
ws = wb.active
for row in data:
ws.append(row)
pie = PieChart()
labels = Reference(ws, min_row=1, min_col=2, max_col=4)
data = Reference(ws, min_col=2, min_row=2, max_col=4)
pie.add_data(data, titles_from_data=True)
pie.set_categories(labels)
pie.title = "Pies sold by category"
ws.add_chart(pie, "G20")
ws = wb.create_sheet(title="Projection")
wb.save("pie.xlsx")
我的问题:我尝试将 max_col 更改为不同的数字,但它只选择 2
【问题讨论】:
-
您想根据excel的观点选择A到D列..rit..??
-
我想为第 2 行(即 Apple)创建一个饼图,饼图的数据取自单元格 B2、C2、D2。如果我理解正确,在代码中
min_col和max_col决定列选择的范围。就我而言,labels = Reference(ws, min_row=1, min_col=2, max_col=4)可以正常工作,而data = Reference(ws, min_col=2, min_row=2, max_col=4)则不行。