python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python创建Excel雷达图

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

作者:用户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 说明:

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

创建填充雷达图

除了标准雷达图,还可以创建填充雷达图(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()

结果预览:

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

自定义雷达图样式

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

调整数据系列颜色

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

# 获取第一个数据系列并设置颜色
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        # 高度(像素)

实际应用建议

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

数据准备

视觉优化

交互增强

适用场景

总结

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

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

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

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

您可能感兴趣的文章:
阅读全文