0
点赞
收藏
分享

微信扫一扫

Python 创建 Excel 图表

爱情锦囊 2023-12-22 阅读 36

Excel图表是一种数据可视化工具,它可以将数据转化为直观、易于理解的图形形式。常见的Excel图表类型有柱状图、折线图、饼图等。本文将介绍如何使用 Spire.XLS for Python 在 Excel 中新建柱形图。

  • Python 添加Excel簇状柱形图
  • Python 添加Excel堆叠柱形图

安装Spire.XLS for Python

可通过pip 命令轻松将Spire.XLS for Python添加至项目中:

pip install Spire.XLS

Python 添加Excel簇状柱形图

Spire.XLS for Python 提供的 Worksheet.Charts.Add(ExcelChartType chartType) 方法支持在工作表中添加图表。其中的 ExcelChartType 枚举包含 MS Excel 中预定义的各种图表类型。具体步骤如下:

  • 创建一个Workbook对象。
  • 使用 Workbook.Worksheets[index] 属性获取指定工作表。
  • 在指定单元格中写入数据。
  • 使用 Worksheet.Charts.Add(ExcelChartType.ColumnClustered) 方法在工作表中添加一个簇状柱形图。
  • 使用 Chart.DataRange 属性设置图表数据范围。
  • 使用 Chart 对象下的各属性设置图表的位置、标题、样式等。
  • 使用 Workbook.SaveToFile() 方法保存结果文件。

from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 对象
workbook = Workbook()

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 设置图表数据
sheet.Range["A1"].Value = "产品"
sheet.Range["A2"].Value = "短裤"
sheet.Range["A3"].Value = "牛仔裤"
sheet.Range["A4"].Value = "帽子"
sheet.Range["A5"].Value = "T恤"

sheet.Range["B1"].Value = "店铺1"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "店铺2"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000

# 设置单元格样式
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center

# 添加一个簇状柱形图到工作表
chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)

# 设置图表数据范围
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# 设置图表位置
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# 设置图表标题
chart.ChartTitle = "店铺各产品销售情况"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 设置坐标轴标题
chart.PrimaryCategoryAxis.Title = "产品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "销量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# 设置图表系列的颜色、重叠、间隙宽度和数据标签
series = chart.Series
for i in range(len(series)):
    cs = series[i]
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.Overlap = -50
    cs.Format.Options.GapWidth = 350
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

# 设置图例位置
chart.Legend.Position = LegendPositionType.Top

# 保存结果文档
workbook.SaveToFile("簇状柱形图.xlsx", ExcelVersion.Version2016)

Python 创建 Excel 图表_表数据

Python 添加Excel堆叠柱形图

创建堆叠柱形图的过程与创建簇状柱形图类似。唯一不同的是,你需要将 Excel 图表类型从 ColumnClustered 更改为 ColumnStacked。具体步骤如下:

  • 创建一个Workbook对象
  • 使用 Workbook.Worksheets[index] 属性获取指定工作表。
  • 在指定单元格中写入数据。
  • 使用 Worksheet.Charts.Add(ExcelChartType.ColumnStacked) 方法在工作表中添加一个堆叠柱形图。
  • 使用 Chart.DataRange 属性设置图表数据范围。
  • 使用 Chart 对象下的各属性设置图表的位置、标题、样式等。
  • 使用 Workbook.SaveToFile() 方法保存结果文件。

from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 对象
workbook = Workbook()

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 设置图表数据
sheet.Range["A1"].Value = "产品"
sheet.Range["A2"].Value = "短裤"
sheet.Range["A3"].Value = "牛仔裤"
sheet.Range["A4"].Value = "帽子"
sheet.Range["A5"].Value = "T恤"

sheet.Range["B1"].Value = "店铺1"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "店铺2"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000

# 设置单元格样式
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center

# 添加一个堆叠柱形图到工作表
chart = sheet.Charts.Add(ExcelChartType.ColumnStacked)

# 设置图表数据范围
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# 设置图表位置
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# 设置图表标题
chart.ChartTitle = "店铺各产品销售情况"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 设置坐标轴标题
chart.PrimaryCategoryAxis.Title = "产品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "销量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# 设置图表系列的颜色、重叠、间隙宽度和数据标签
series = chart.Series
for i in range(len(series)):
    cs = series[i]
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.GapWidth = 270
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Inside

# 设置图例位置
chart.Legend.Position = LegendPositionType.Top

# 保存结果文档
workbook.SaveToFile("堆叠柱形图.xlsx", ExcelVersion.Version2016)

Python 创建 Excel 图表_表数据_02

Spire.XLS for Python不仅支持基本的图表创建,还提供数据筛选、趋势线添加、图表组合等高级图表操作功能。它能够帮助您使用Python进行深入的数据分析和展示。Spire.XLS for Python是一个独立的Excel组件,无需依赖Microsoft Office Excel。它兼容国产操作系统,可以在中标麒麟和中科方德等国产操作系统中正常运行。

举报

相关推荐

0 条评论