• 使用Python生成多种不同类型的Excel图表


    目录

    一、使用工具

    二、生成Excel图表的基本步骤

    三、使用Python创建Excel图表

    四、总结


    Excel图表是数据可视化的重要工具,它通过直观的方式将数字信息展示出来,使数据分析和决策更加高效。使用图表展示数据不仅能够提升数据的可读性,还能让复杂的信息一目了然,非常适用于财务分析、市场报告以及日常数据汇报等场景。这篇文章将介绍如何使用Python在Excel中生成各种不同类型的图表

    一、使用工具

    在Python中,使用Spire.XLS可以轻松生成各种Excel图表,它支持超过80种不同的图表类型,包括经典的柱形图、折线图、饼图等,以及Excel 2016及之后新加的图表,如瀑布图、树形图、箱线图、直方图、漏斗图和旭日图。

    安装Spire.XLS for Python

    在开始使用之前,确保已安装Spire.XLS for Python,可以通过以下命令从PyPI安装:

    pip install Spire.Xls

    二、生成Excel图表的基本步骤

    生成Excel图表的基本步骤包括:

    • 创建一个Excel工作簿或加载现有工作簿。
    • 在工作表中填充数据或获取现有数据区域。
    • 根据数据创建所需类型的图表。
    • 设置图表的格式和外观。
    • 保存Excel文件。

    三、使用Python创建Excel图表

    以下是如何使用Spire.XLS for Python生成不同图表的例子。

    柱形图

    柱形图是最常见的图表之一,主要用于显示不同类别之间的数据对比。柱形图可以进一步细分为簇状柱形图、堆积柱形图、百分比堆积柱形图等,这里只展示如何创建簇状柱形图:

    1. from spire.xls.common import *
    2. from spire.xls import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 获取第一个工作表并设置其名称
    6. sheet = workbook.Worksheets[0]
    7. sheet.Name = "柱形图"
    8. # 向工作表的特定单元格添加数据
    9. sheet.Range["A1"].Value = "产品"
    10. sheet.Range["A2"].Value = "袜子"
    11. sheet.Range["A3"].Value = "短背带裤"
    12. sheet.Range["A4"].Value = "短裤"
    13. sheet.Range["A5"].Value = "紧身裤"
    14. sheet.Range["B1"].Value = "七月"
    15. sheet.Range["B2"].NumberValue = 6000
    16. sheet.Range["B3"].NumberValue = 8000
    17. sheet.Range["B4"].NumberValue = 9000
    18. sheet.Range["B5"].NumberValue = 8500
    19. sheet.Range["C1"].Value = "八月"
    20. sheet.Range["C2"].NumberValue = 3000
    21. sheet.Range["C3"].NumberValue = 2000
    22. sheet.Range["C4"].NumberValue = 2300
    23. sheet.Range["C5"].NumberValue = 4200
    24. # 设置单元格样式
    25. sheet.Range["A1:C1"].RowHeight = 15
    26. sheet.Range["A1:C1"].Style.Color = Color.get_DarkGray()
    27. sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
    28. sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
    29. sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center
    30. sheet.Range["B2:C5"].Style.NumberFormat = "\"$\"#,##0"
    31. # 向工作表添加簇状柱形图
    32. chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)
    33. # 设置图表数据范围
    34. chart.DataRange = sheet.Range["A1:C5"]
    35. chart.SeriesDataFromRange = False
    36. # 设置图表位置
    37. chart.LeftColumn = 5
    38. chart.TopRow = 1
    39. chart.RightColumn = 14
    40. chart.BottomRow = 24
    41. # 设置图表标题
    42. chart.ChartTitle = "服装类别月销售额"
    43. chart.ChartTitleArea.IsBold = True
    44. chart.ChartTitleArea.Size = 12
    45. # 设置图表轴
    46. chart.PrimaryCategoryAxis.Title = "产品"
    47. chart.PrimaryCategoryAxis.Font.IsBold = True
    48. chart.PrimaryCategoryAxis.TitleArea.IsBold = True
    49. chart.PrimaryValueAxis.Title = "销售额"
    50. chart.PrimaryValueAxis.HasMajorGridLines = False
    51. chart.PrimaryValueAxis.MinValue = 1000
    52. chart.PrimaryValueAxis.TitleArea.IsBold = True
    53. chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90
    54. # 设置系列颜色、重叠、间隔宽度和数据标签
    55. for cs in chart.Series:
    56. cs.Format.Options.IsVaryColor = True
    57. cs.Format.Options.Overlap = -50
    58. cs.Format.Options.GapWidth = 350
    59. cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    60. # 设置图例位置
    61. chart.Legend.Position = LegendPositionType.Top
    62. # 保存结果文件
    63. workbook.SaveToFile("簇状柱形图.xlsx", ExcelVersion.Version2016)
    64. workbook.Dispose()

    Python生成Excel柱形图

    饼图

    饼图通常用于显示每个数据类别的比例,例如每个地区的人口百分比或每种类型的销售额的百分比等。下面是创建饼图的代码:

    1. from spire.xls.common import *
    2. from spire.xls import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("饼图模版.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "饼图"
    10. # 向工作表添加饼图
    11. chart = sheet.Charts.Add(ExcelChartType.Pie)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet.Range["A1:D2"]
    14. chart.SeriesDataFromRange = False
    15. # 设置图表位置
    16. chart.LeftColumn = 6
    17. chart.TopRow = 1
    18. chart.RightColumn = 12
    19. chart.BottomRow = 17
    20. # 设置图表标题
    21. chart.ChartTitle = "2017年野生动物数量"
    22. chart.ChartTitleArea.IsBold = True
    23. chart.ChartTitleArea.Size = 12
    24. # 设置图表系列的类别标签、值和数据标签
    25. cs = chart.Series[0]
    26. cs.CategoryLabels = sheet.Range["B1:D1"]
    27. cs.Values = sheet.Range["B2:D2"]
    28. cs.DataPoints.DefaultDataPoint.DataLabels.HasPercentage = True
    29. # 隐藏绘图区填充
    30. chart.PlotArea.Fill.Visible = False
    31. # 设置图例的位置
    32. chart.Legend.Position = LegendPositionType.Bottom
    33. # 保存结果文件
    34. workbook.SaveToFile("饼图.xlsx", ExcelVersion.Version2016)
    35. workbook.Dispose()

    Python生成Excel饼图

    折线图

    折线图可以显示一段时间内数据的连续变化,适用于显示相等时间间隔(如月、季度或财年)下数据的趋势。折线图也可以进一步细分为堆积折线图、百分比堆积折线图等‌。下面是创建折线图的代码:

    1. from spire.xls.common import *
    2. from spire.xls import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("折线图模版.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "折线图"
    10. # 向工作表添加折线图
    11. chart = sheet.Charts.Add(ExcelChartType.Line)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet.Range["A1:E5"]
    14. chart.SeriesDataFromRange = False
    15. # 设置图表位置
    16. chart.LeftColumn = 1
    17. chart.TopRow = 7
    18. chart.RightColumn = 11
    19. chart.BottomRow = 30
    20. # 设置图表标题
    21. chart.ChartTitle = "各国月度销售额"
    22. chart.ChartTitleArea.IsBold = True
    23. chart.ChartTitleArea.Size = 12
    24. # 设置图表坐标轴
    25. chart.PrimaryCategoryAxis.Title = "月份"
    26. chart.PrimaryCategoryAxis.Font.IsBold = True
    27. chart.PrimaryCategoryAxis.TitleArea.IsBold = True
    28. chart.PrimaryValueAxis.Title = "销售额"
    29. chart.PrimaryValueAxis.HasMajorGridLines = False
    30. chart.PrimaryValueAxis.TitleArea.TextRotationAngle = -90
    31. chart.PrimaryValueAxis.MinValue = 1000
    32. chart.PrimaryValueAxis.TitleArea.IsBold = True
    33. # 设置图表系列的格式和数据标签
    34. for cs in chart.Series:
    35. cs.Format.Options.IsVaryColor = True
    36. cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    37. # 隐藏绘图区填充
    38. chart.PlotArea.Fill.Visible = False
    39. # 设置图例的位置
    40. chart.Legend.Position = LegendPositionType.Bottom
    41. # 保存结果文件
    42. workbook.SaveToFile("折线图.xlsx", ExcelVersion.Version2016)
    43. workbook.Dispose()

    Python生成Excel折线图

    条形图

    条形图与柱形图类似,通常用于比较不同类别的数值。不同的是条形图的系列名称在y轴上,值在x轴上。下面是创建条形图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("条形图模版.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "条形图"
    10. # 向工作表添加一个簇状条形图
    11. chart = sheet.Charts.Add(ExcelChartType.BarClustered)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet.Range["A1:E5"]
    14. chart.SeriesDataFromRange = False
    15. # 设置图表位置
    16. chart.LeftColumn = 7
    17. chart.TopRow = 1
    18. chart.RightColumn = 14
    19. chart.BottomRow = 28
    20. # 设置图表坐标轴
    21. chart.PrimaryCategoryAxis.Title = "国家"
    22. chart.PrimaryCategoryAxis.Font.IsBold = True
    23. chart.PrimaryCategoryAxis.TitleArea.IsBold = True
    24. chart.PrimaryCategoryAxis.TitleArea.TextRotationAngle = -90
    25. chart.PrimaryValueAxis.Title = "销售额(美元)"
    26. chart.PrimaryValueAxis.HasMajorGridLines = False
    27. chart.PrimaryValueAxis.MinValue = 1000
    28. chart.PrimaryValueAxis.TitleArea.IsBold = True
    29. # 设置数据标签
    30. for cs in chart.Series:
    31. cs.Format.Options.IsVaryColor = True
    32. cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    33. # 设置图例的位置
    34. chart.Legend.Position = LegendPositionType.Bottom
    35. # 保存结果文件
    36. workbook.SaveToFile("条形图.xlsx", ExcelVersion.Version2016)
    37. workbook.Dispose()

    Python生成Excel条形图

    散点图

    散点图用于展示两组数据之间的关系,通过点的分布可以判断两变量之间是否存在某种关联。散点图通常用于比较跨类别的聚合数据,提供关键信息,适用于需要比较两组数据之间的关系或模式的情况‌。下面是创建散点图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("散点图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "散点图"
    10. # 向工作表添加一个散点图
    11. chart = sheet.Charts.Add(ExcelChartType.ScatterMarkers)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet.Range["B2:B6"]
    14. chart.SeriesDataFromRange = False
    15. # 设置图表位置
    16. chart.LeftColumn = 4
    17. chart.TopRow = 1
    18. chart.RightColumn = 11
    19. chart.BottomRow = 15
    20. # 设置第一个数据系列的类别标签和数值
    21. chart.Series[0].CategoryLabels = sheet.Range["A2:A6"]
    22. chart.Series[0].Values = sheet.Range["B2:B6"]
    23. # 设置图表坐标轴
    24. chart.PrimaryCategoryAxis.Title = "广告支出"
    25. chart.PrimaryValueAxis.Title = "售出商品数量"
    26. # 保存结果文件
    27. workbook.SaveToFile("散点图.xlsx", FileFormat.Version2016)
    28. workbook.Dispose()

    Python生成Excel散点图

    面积图

    面积图是一种常用的数据可视化图表类型,它通过填充折线图下方与X轴之间的区域来表示数据的变化趋势。面积图与折线图相似,但面积图通过颜色填充来展示数据的累积效果,从而更好地展示数据随时间或类别变化的趋势。下面是创建面积图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("面积图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "面积图"
    10. # 向工作表添加一个堆积面积图
    11. chart = sheet.Charts.Add(ExcelChartType.AreaStacked)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet.Range["A1:D6"]
    14. chart.SeriesDataFromRange = False
    15. # 设置图表位置
    16. chart.LeftColumn = 6
    17. chart.TopRow = 1
    18. chart.RightColumn = 13
    19. chart.BottomRow = 15
    20. # 设置图表图例的位置
    21. chart.Legend.Position = LegendPositionType.Bottom
    22. # 保存结果文件
    23. workbook.SaveToFile("面积图.xlsx", FileFormat.Version2016)
    24. workbook.Dispose()

    Python生成Excel面积图

    组合图

    组合图表允许用户将不同类型的图表(如条形图、折线图、饼图等)组合在一起,以展示多种数据之间的关系和趋势。下面是创建组合图的代码:

    1. from spire.xls.common import *
    2. from spire.xls import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("组合图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "组合图"
    10. # 向工作表添加一个组合图表
    11. chart = sheet.Charts.Add(ExcelChartType.CombinationChart)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet.Range["A1:C5"]
    14. chart.SeriesDataFromRange = False
    15. # 设置图表位置
    16. chart.LeftColumn = 1
    17. chart.TopRow = 7
    18. chart.RightColumn = 6
    19. chart.BottomRow = 20
    20. # 为不同的图表系列设置不同的图表类型
    21. cs1 = chart.Series[0]
    22. cs1.SerieType = ExcelChartType.ColumnClustered
    23. cs2 = chart.Series[1]
    24. cs2.SerieType = ExcelChartType.LineMarkers
    25. # 向图表添加次级类别轴
    26. chart.SecondaryCategoryAxis.IsMaxCross = True
    27. cs2.UsePrimaryAxis = False
    28. # 保存结果文件
    29. workbook.SaveToFile("组合图.xlsx", ExcelVersion.Version2016)
    30. workbook.Dispose()

    Python生成Excel组合图

    瀑布图

    瀑布图显示数据增减变化的连续过程,通常用于展示企业财务表现、利润变化等情况。下面是创建瀑布图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("瀑布图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "瀑布图"
    10. # 向工作表添加一个瀑布图
    11. chart = sheet.Charts.Add(ExcelChartType.WaterFall)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet["A1:B5"]
    14. # 设置图表位置
    15. chart.TopRow = 1
    16. chart.BottomRow = 19
    17. chart.LeftColumn = 4
    18. chart.RightColumn = 12
    19. # 设置图表标题
    20. chart.ChartTitle = "第四季度"
    21. chart.ChartTitleArea.IsBold = True
    22. chart.ChartTitleArea.Size = 12
    23. # 将图表中的特定数据点设为总计
    24. chart.Series[0].DataPoints[2].SetAsTotal = True
    25. chart.Series[0].DataPoints[4].SetAsTotal = True
    26. # 显示数据点之间的连接线
    27. chart.Series[0].Format.ShowConnectorLines = True
    28. # 设置数据标签和图例选项
    29. chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    30. chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8
    31. chart.Legend.Position = LegendPositionType.Right
    32. # 保存结果文件
    33. workbook.SaveToFile("瀑布图.xlsx", ExcelVersion.Version2016)
    34. workbook.Dispose()

    Python生成Excel瀑布图

    树形图

    树形图以树状结构展示数据层级关系,便于理解数据的组织结构和比例关系。下面是创建树形图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("树形图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "树形图"
    10. # 向工作表添加一个树状图
    11. chart = sheet.Charts.Add(ExcelChartType.TreeMap)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet["A1:C18"]
    14. # 设置图表位置
    15. chart.TopRow = 1
    16. chart.BottomRow = 19
    17. chart.LeftColumn = 5
    18. chart.RightColumn = 13
    19. # 设置图表标题
    20. chart.ChartTitle = "产品销售额"
    21. # 设置标签选项
    22. chart.Series[0].DataFormat.TreeMapLabelOption = ExcelTreeMapLabelOption.Banner
    23. # 设置数据标签大小
    24. chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8
    25. # 保存结果文件
    26. workbook.SaveToFile("树形图.xlsx", ExcelVersion.Version2016)
    27. workbook.Dispose()

    Python生成Excel树形图

    箱线图

    箱线图显示数据的分布情况,包括中位数、四分位数等统计指标,适用于分析数据波动。下面是创建箱线图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("箱线图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "箱线图"
    10. # 向工作表添加一个箱线图
    11. chart = sheet.Charts.Add(ExcelChartType.BoxAndWhisker)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet["A1:D17"]
    14. # 设置图表位置
    15. chart.TopRow = 1
    16. chart.BottomRow = 19
    17. chart.LeftColumn = 6
    18. chart.RightColumn = 14
    19. # 设置图表标题
    20. chart.ChartTitle = "产品年度销售额"
    21. # 为图表系列设置数据格式
    22. seriesA = chart.Series[0]
    23. seriesA.DataFormat.ShowInnerPoints = False
    24. seriesA.DataFormat.ShowOutlierPoints = True
    25. seriesA.DataFormat.ShowMeanMarkers = True
    26. seriesA.DataFormat.ShowMeanLine = False
    27. seriesA.DataFormat.QuartileCalculationType = ExcelQuartileCalculation.ExclusiveMedian
    28. seriesB = chart.Series[1]
    29. seriesB.DataFormat.ShowInnerPoints = False
    30. seriesB.DataFormat.ShowOutlierPoints = True
    31. seriesB.DataFormat.ShowMeanMarkers = True
    32. seriesB.DataFormat.ShowMeanLine = False
    33. seriesB.DataFormat.QuartileCalculationType = ExcelQuartileCalculation.InclusiveMedian
    34. seriesC = chart.Series[2]
    35. seriesC.DataFormat.ShowInnerPoints = False
    36. seriesC.DataFormat.ShowOutlierPoints = True
    37. seriesC.DataFormat.ShowMeanMarkers = True
    38. seriesC.DataFormat.ShowMeanLine = False
    39. seriesC.DataFormat.QuartileCalculationType = ExcelQuartileCalculation.ExclusiveMedian
    40. # 保存结果文件
    41. workbook.SaveToFile("箱线图.xlsx", ExcelVersion.Version2016)
    42. workbook.Dispose()

    Python生成Excel箱线图

    旭日图

    旭日图通过多层圆环表示数据的层级关系,每层圆环表示一个层级,可直观展示数据占比。下面是创建旭日图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建一个工作簿对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("旭日图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "旭日图"
    10. # 向工作表添加一个旭日图
    11. chart = sheet.Charts.Add(ExcelChartType.SunBurst)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet["A1:C10"]
    14. # 设置图表位置
    15. chart.TopRow = 1
    16. chart.BottomRow = 19
    17. chart.LeftColumn = 5
    18. chart.RightColumn = 13
    19. # 设置图表标题
    20. chart.ChartTitle = "产品销售额"
    21. # 设置数据标签的大小
    22. chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8
    23. # 隐藏图表图例
    24. chart.HasLegend = False
    25. # 保存结果文件
    26. workbook.SaveToFile("旭日图.xlsx", ExcelVersion.Version2016)
    27. workbook.Dispose()

    Python生成Excel旭日图

    漏斗图

    漏斗图表示数据在流程中的逐步减少或筛选过程,常用于销售、转化等流程分析。下面是创建漏斗图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建Workbook对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("漏斗图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "漏斗图"
    10. # 向工作表添加一个漏斗图
    11. chart = sheet.Charts.Add(ExcelChartType.Funnel)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet["A1:B5"]
    14. # 设置图表位置
    15. chart.TopRow = 1
    16. chart.BottomRow = 19
    17. chart.LeftColumn = 4
    18. chart.RightColumn = 12
    19. # 设置图表标题
    20. chart.ChartTitle = "客户情况统计"
    21. # 设置数据标签
    22. chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    23. chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8
    24. # 设置间距宽度
    25. chart.Series[0].Format.Options.GapWidth = 10
    26. # 隐藏图表图例
    27. chart.HasLegend = False
    28. # 保存文件
    29. workbook.SaveToFile("漏斗图.xlsx", ExcelVersion.Version2016)
    30. workbook.Dispose()

    Python生成Excel漏斗图

    直方图

    直方图常用于显示数据的分布情况。它将数据按区间分组,每个区间对应一个条形。条形的高度表示该区间内的数据频数或频率。下面是创建直方图的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建一个工作簿对象
    4. workbook = Workbook()
    5. # 加载一个Excel文件
    6. workbook.LoadFromFile("直方图模板.xlsx")
    7. # 获取第一个工作表并设置其名称
    8. sheet = workbook.Worksheets[0]
    9. sheet.Name = "直方图"
    10. # 向工作表添加一个直方图
    11. chart = sheet.Charts.Add(ExcelChartType.Histogram)
    12. # 设置图表的数据范围
    13. chart.DataRange = sheet["A1:B12"]
    14. # 设置图表位置
    15. chart.TopRow = 1
    16. chart.BottomRow = 17
    17. chart.LeftColumn = 4
    18. chart.RightColumn = 12
    19. # 设置图表标题
    20. chart.ChartTitle = "测试成绩"
    21. # 设置箱宽
    22. chart.PrimaryCategoryAxis.BinWidth = 6
    23. # 设置间距宽度
    24. chart.Series[0].DataFormat.Options.GapWidth = 6
    25. # 设置坐标轴标题
    26. chart.PrimaryValueAxis.Title = "学生人数"
    27. chart.PrimaryCategoryAxis.Title = "成绩"
    28. # 隐藏图表图例
    29. chart.HasLegend = False
    30. # 保存文件
    31. workbook.SaveToFile("直方图.xlsx", ExcelVersion.Version2016)
    32. workbook.Dispose()

    Python生成Excel直方图

    不使用工作表数据生成图表

    在特定情况下,你可能不想把数据写入工作表然后再生成图表,而是希望直接用外部的自定义数据生成图表。下面是不使用工作表数据创建图表的代码:

    1. from spire.xls import *
    2. from spire.xls.common import *
    3. # 创建一个工作簿对象
    4. workbook = Workbook()
    5. # 获取第一个工作表
    6. sheet = workbook.Worksheets[0]
    7. # 添加图表
    8. chart = sheet.Charts.Add()
    9. # 设置图表标题
    10. chart.ChartTitle = "自定义数据图表"
    11. # 添加数据系列
    12. series = chart.Series.Add()
    13. # 添加数据
    14. series.EnteredDirectlyValues = [Int32(10), Int32(20), Int32(30)]
    15. # 保存文件
    16. workbook.SaveToFile("使用自定义数据创建图表.xlsx", ExcelVersion.Version2013)
    17. workbook.Dispose()

    Python不使用Excel工作表数据生成图表

    四、总结

    由于篇幅问题,本文只介绍了十几种图表类型,事实上Spire.XLS for Python基本涵盖了Excel中百分之九十以上的图表类型。如果你需要经常通过Python处理Excel文件并生成图表, Spire.XLS是一个非常有用的工具。

    本文完结。

  • 相关阅读:
    uni-app 折叠自定义
    04-Docker应用部署
    UOS Vmware 拷贝文件问题
    SpringBoot整合XXL-JOB详解
    【JAVA】:万字长篇带你了解JAVA并发编程【一】
    c++学习笔记
    python中不同进制的表示方法及进制转化
    树莓派——5、Ubuntu18-04虚拟机搭建VMware版本
    Java中如何处理时间--Date类
    SchedulingConfigurer教程,怎么使用Spring自带的可扩展定时任务调度接口
  • 原文地址:https://blog.csdn.net/nuclear2011/article/details/142216616