我们手动在 Excel 表格中画柱状图是很简单的事情,但是一旦这种简单的工作需要每天都做,那么最好的办法就是用 Python 来自动完成。
今天分享一招,如何用 Python 在 Excel 中画柱状图。
这里借助于工具 openpyxl,如果有更好的工具,欢迎留言分享。
先准备一份简单的数据:
data_rows = [
['日期', '案例数', '验收通过数'],
['2022-08-01', 727, 659],
['2022-08-02', 727, 688],
['2022-08-03', 725, 696],
['2022-08-04', 725, 701],
['2022-08-05', 725, 712],
['2022-08-08', 725, 717],
['2022-08-11', 725, 722],
]
预期的效果就是横坐标是日期,纵坐标是数量,有两个分类,如下图所示:
步骤就是:
1、把数据写入 sheet
2、实例化一个 BarChart
3、指定 BarChart 的数据范围,分类的范围,设置样式、标题等
4、保存
完整代码如下:
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
def main(filename):
workbook = Workbook()
sheet = workbook.active
data_rows = [
['日期', '案例数', '验收通过数'],
['2022-08-01', 727, 659],
['2022-08-02', 727, 688],
['2022-08-03', 725, 696],
['2022-08-04', 725, 701],
['2022-08-05', 725, 712],
['2022-08-08', 725, 717],
['2022-08-11', 725, 722],
]
# 1、把数据写入 sheet
for row in data_rows:
sheet.append(row)
# 2、实例化一个 BarChart
bar_chart = BarChart()
# 3、指定 BarChart 的数据范围,分类的范围,设置样式、标题等
data = Reference(worksheet=sheet, min_row=1, max_row=8, min_col=2, max_col=3)
x_axis = Reference(worksheet=sheet, min_col=1, min_row=2, max_row=8, max_col=1)
bar_chart.add_data(data, titles_from_data=True)
bar_chart.set_categories(x_axis)
bar_chart.title = '案例验收情况'
bar_chart.y_axis.title = '数量'
bar_chart.x_axis.title = '日期'
# bar_chart.style = 10 设置样式
# 设置柱状图位置
sheet.add_chart(bar_chart, 'E2')
# 4、保存
workbook.save(filename)
if __name__ == '__main__':
main('bar_chart.xlsx')
运行代码,就会生产 bar_chart.xlsx 文件,打开后就会看到预期的效果图
最后,如果有帮助,还请点赞、关注、转发、留言。