使用Python创建Excel雷达图的完整教学

 更新时间:2026年05月29日 15:31:17   作者:用户835629078051  
雷达图(Radar Chart)是一种多维数据可视化工具,特别适合比较多个变量在不同维度上的表现,本文将介绍如何使用 Python 在 Excel 中创建雷达图和填充雷达图,并对图表进行自定义设置,希望对大家有所帮助

雷达图(Radar Chart)是一种多维数据可视化工具,特别适合比较多个变量在不同维度上的表现。它在性能评估、能力分析、产品对比等场景中非常实用。本文将介绍如何使用 Python 在 Excel 中创建雷达图和填充雷达图,并对图表进行自定义设置。

为什么使用雷达图

雷达图具有以下优势:

  • 多维度对比:可以在同一图表中展示多个维度的数据
  • 直观的性能分析:清晰显示各项指标的强弱分布
  • 模式识别:通过图形形状快速识别数据模式和异常
  • 适用于评估场景:如员工绩效评估、产品特性对比、技能矩阵分析等

典型应用场景包括:

  • 员工多维度绩效评估(沟通能力、技术能力、领导力等)
  • 产品功能对比(价格、性能、易用性、可靠性等)
  • 市场分析(不同地区的销售表现)
  • 能力模型可视化(技能掌握程度)

环境准备

首先需要安装 Spire.XLS for Python 库:

pip install Spire.XLS

Spire.XLS 提供了完整的 Excel 文件操作 API,支持创建、读取、修改和转换 Excel 文档,无需安装 Microsoft Excel。

创建基础雷达图

下面我们将创建一个展示不同地区产品销售情况的雷达图。示例数据包含三种产品(自行车、汽车、卡车)在两个城市(巴黎、纽约)的销售数据。

步骤 1:准备数据并创建工作表

首先创建 Excel 工作簿并添加示例数据:

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

def CreateChartData(sheet):
    # 设置产品标题
    sheet.Range["A1"].Value = "Product"
    sheet.Range["A2"].Value = "Bikes"
    sheet.Range["A3"].Value = "Cars"
    sheet.Range["A4"].Value = "Trucks"
    sheet.Range["A5"].Value = "Buses"
    
    # 设置巴黎销售数据
    sheet.Range["B1"].Value = "Paris"
    sheet.Range["B2"].NumberValue = 4000
    sheet.Range["B3"].NumberValue = 23000
    sheet.Range["B4"].NumberValue = 4000
    sheet.Range["B5"].NumberValue = 30000
    
    # 设置纽约销售数据
    sheet.Range["C1"].Value = "New York"
    sheet.Range["C2"].NumberValue = 30000
    sheet.Range["C3"].NumberValue = 7600
    sheet.Range["C4"].NumberValue = 18000
    sheet.Range["C5"].NumberValue = 8000
    
    # 设置标题行字体加粗
    sheet.Range["A1:C1"].Style.Font.IsBold = True
    
    # 为不同行设置背景色
    sheet.Range["A2:C2"].Style.KnownColor = ExcelColors.LightYellow
    sheet.Range["A3:C3"].Style.KnownColor = ExcelColors.LightGreen1
    sheet.Range["A4:C4"].Style.KnownColor = ExcelColors.LightOrange
    sheet.Range["A5:C5"].Style.KnownColor = ExcelColors.LightTurquoise
    
    # 设置边框样式
    style = sheet.Range["A1:C5"].Style
    borders = style.Borders
    
    # 设置上边框
    topborder = borders[BordersLineType.EdgeTop]
    topborder.Color = Color.FromRgb(0, 0, 128)
    borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin
    
    # 设置下边框
    borders[BordersLineType.EdgeBottom].Color = Color.FromRgb(0, 0, 128)
    sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
    
    # 设置左边框
    sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeLeft].Color = Color.FromRgb(0, 0, 128)
    sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin
    
    # 设置右边框
    sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeRight].Color = Color.FromRgb(0, 0, 128)
    sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin
    
    # 设置数字格式为货币格式
    sheet.Range["B2:C5"].Style.NumberFormat = "\"$\"#,##0"

# 创建工作簿
workbook = Workbook()
workbook.CreateEmptySheets(1)
sheet = workbook.Worksheets[0]
sheet.Name = "Chart data"
sheet.GridLinesVisible = False

# 写入图表数据
CreateChartData(sheet)

这段代码完成了以下任务:

  • 创建了包含产品和地区销售数据的表格
  • 设置了标题行的粗体样式
  • 为不同数据行应用了不同的背景色,提高可读性
  • 添加了深蓝色边框,使表格更加美观
  • 将数值格式化为美元货币格式

步骤 2:添加雷达图并配置属性

接下来在工作表中添加雷达图并设置其属性:

# 添加新图表到工作表
chart = sheet.Charts.Add()

# 设置图表位置
chart.LeftColumn = 1
chart.TopRow = 6
chart.RightColumn = 11
chart.BottomRow = 29

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

# 设置图表类型为雷达图
chart.ChartType = ExcelChartType.Radar

# 设置图表标题
chart.ChartTitle = "Sale market by region"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 隐藏绘图区背景
chart.PlotArea.Fill.Visible = False

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

# 保存文档
workbook.SaveToFile("CreateRadarChart.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

结果预览:

关键 API 说明:

  • sheet.Charts.Add():向工作表添加新图表对象
  • chart.DataRange:指定图表使用的数据范围,这里使用 A1:C5 区域
  • chart.SeriesDataFromRange = False:表示数据系列不按行组织,而是按列组织
  • ExcelChartType.Radar:设置图表类型为雷达图(线条型)
  • chart.ChartTitle:设置图表标题文本
  • chart.PlotArea.Fill.Visible = False:隐藏绘图区背景,使图表更简洁
  • LegendPositionType.Corner:将图例放置在角落位置

生成的雷达图将以线条形式展示各产品在两个地区的销售数据,便于对比分析。

创建填充雷达图

除了标准雷达图,还可以创建填充雷达图(Radar Filled),这种类型会用颜色填充数据点之间的区域,视觉效果更加突出。

# 创建工作簿
workbook = Workbook()
workbook.CreateEmptySheets(1)
sheet = workbook.Worksheets[0]
sheet.Name = "Chart data"
sheet.GridLinesVisible = False

# 写入图表数据
CreateChartData(sheet)

# 添加新图表到工作表
chart = sheet.Charts.Add()

# 设置图表位置
chart.LeftColumn = 1
chart.TopRow = 6
chart.RightColumn = 11
chart.BottomRow = 29

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

# 设置图表类型为填充雷达图
chart.ChartType = ExcelChartType.RadarFilled

# 设置图表标题
chart.ChartTitle = "Sale market by region"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 隐藏绘图区背景
chart.PlotArea.Fill.Visible = False

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

# 保存文档
workbook.SaveToFile("CreateRadarChart_Fill.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

结果预览:

填充雷达图与普通雷达图的主要区别在于:

  • ExcelChartType.RadarFilled:使用填充类型,数据点之间的区域会被颜色填充
  • 更适合强调数据范围和面积对比
  • 视觉上更加醒目,适合演示和报告场景

自定义雷达图样式

创建基本雷达图后,可以进一步自定义图表的各个元素,以满足特定的展示需求。

调整数据系列颜色

可以为不同的数据系列设置不同的颜色,提高图表的可区分度:

# 获取第一个数据系列并设置颜色
series = chart.Series[0]
series.Format.LineProperties.Color = Color.FromRgb(255, 0, 0)  # 红色
series.Format.LineProperties.Width = 2.5

# 获取第二个数据系列并设置颜色
series2 = chart.Series[1]
series2.Format.LineProperties.Color = Color.FromRgb(0, 0, 255)  # 蓝色
series2.Format.LineProperties.Width = 2.5

自定义坐标轴

可以调整雷达图的坐标轴属性,包括刻度、标签格式等:

# 获取值轴
valueAxis = chart.PrimaryValueAxis

# 设置坐标轴标题
valueAxis.Title = "Sales Amount"
valueAxis.TitleArea.IsBold = True
valueAxis.TitleArea.Size = 10

# 设置坐标轴数字格式
valueAxis.NumberFormat = "$#,##0"

# 设置主要网格线样式
valueAxis.MajorGridLines.LineProperties.Color = Color.FromRgb(200, 200, 200)
valueAxis.MajorGridLines.LineProperties.DashStyle = LineDashStyleType.Dash

添加数据标签

为数据点添加标签可以更清晰地显示具体数值:

# 为每个系列添加数据标签
for series in chart.Series:
    seriePoints = series.DataPoints
    for point in seriePoints:
        point.DataLabels.HasValue = True
        point.DataLabels.Position = DataLabelPositionType.Above

调整图表大小和位置

可以根据需要调整图表在工作表中的位置和大小:

# 设置图表占据的行列范围
chart.LeftColumn = 1      # 起始列
chart.TopRow = 6          # 起始行
chart.RightColumn = 11    # 结束列
chart.BottomRow = 29      # 结束行

# 或者使用像素级精确控制
chart.Top = 100           # 顶部位置(像素)
chart.Left = 50           # 左侧位置(像素)
chart.Width = 500         # 宽度(像素)
chart.Height = 400        # 高度(像素)

实际应用建议

在实际项目中使用雷达图时,可以考虑以下最佳实践:

数据准备

  • 确保所有维度使用相同的度量单位或已标准化
  • 数据维度不宜过多,建议控制在 5-8 个维度以内
  • 为每个维度提供清晰的标签说明

视觉优化

  • 使用对比明显的颜色区分不同数据系列
  • 适当调整线条宽度和透明度,避免重叠时难以辨认
  • 添加数据标签时注意位置,避免遮挡

交互增强

  • 在 Web 应用中,可以结合 JavaScript 库实现交互式雷达图
  • 添加悬停提示显示详细数值
  • 支持动态切换显示/隐藏特定数据系列

适用场景

  • 绩效评估系统:展示员工在多维度考核中的表现
  • 产品对比工具:比较不同产品的各项指标
  • 技能矩阵:可视化团队成员的技能分布
  • 竞争分析:对比企业与竞争对手的各项指标

总结

本文介绍了如何使用 Python 在 Excel 中创建和自定义雷达图。通过 Spire.XLS 库,我们可以:

  • 轻松创建标准雷达图和填充雷达图
  • 自定义图表的颜色、位置、标题等属性
  • 调整坐标轴、图例和数据标签的样式
  • 将雷达图应用于各种数据分析和可视化场景

雷达图是多维度数据分析的有力工具,特别适合需要同时比较多个变量的场景。结合 Python 的自动化能力,可以批量生成雷达图报表,大大提高数据分析效率。

通过灵活运用这些 API,您可以根据具体需求创建出专业、美观的雷达图,为数据分析和决策提供有力支持。

以上就是使用Python创建Excel雷达图的完整教学的详细内容,更多关于Python创建Excel雷达图的资料请关注脚本之家其它相关文章!

相关文章

  • matplotlib.subplot()画子图并共享y坐标轴的方法

    matplotlib.subplot()画子图并共享y坐标轴的方法

    Matplotlib的可以把很多张图画到一个显示界面,本文主要介绍matplotlib.subplot()画子图并共享y坐标轴的方法,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Python实现cpu并行运算的两种方式

    Python实现cpu并行运算的两种方式

    Python 提供了多种库来支持 CPU 并行运算,其中最常用的是 multiprocessing 和 mpi4py 模块,这两个库允许你在单台机器上利用多核处理器提高程序的性能,本文通过代码示例给大家详细的介绍了这两种方法,需要的朋友可以参考下
    2024-08-08
  • python目标检测SSD算法训练部分源码详解

    python目标检测SSD算法训练部分源码详解

    这篇文章主要为大家介绍了python目标检测SSD算法训练部分源码详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • PyQt5类型判定+对象删除操作

    PyQt5类型判定+对象删除操作

    这篇文章主要介绍了PyQt5类型判定+对象删除操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • python中os.path.exits()的坑

    python中os.path.exits()的坑

    本文主要介绍了python中os.path.exits()的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Python configparser模块封装及构造配置文件

    Python configparser模块封装及构造配置文件

    这篇文章主要介绍了Python configparser模块封装及构造配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python使用剪切板的方法

    Python使用剪切板的方法

    这篇文章主要为大家详细介绍了Python使用剪切板的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 在django项目中导出数据到excel文件并实现下载的功能

    在django项目中导出数据到excel文件并实现下载的功能

    这篇文章主要介绍了在django项目中导出数据到excel文件并实现下载的功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 使用python设置Excel工作表网格线的隐藏与显示

    使用python设置Excel工作表网格线的隐藏与显示

    Excel表格界面的直观性很大程度上得益于表格中的网格线设计,这些线条帮助用户精确对齐数据,清晰划分单元格,本文将介绍如何使用Python设置隐藏或显示Excel工作表的网格线,实现自动话及批量处理,感兴趣的朋友可以参考下
    2024-06-06
  • Python绘制二维曲线的日常应用详解

    Python绘制二维曲线的日常应用详解

    今天小编就为大家分享一篇Python绘制二维曲线的日常应用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论