Applies ToMicrosoft 365 专属 Excel

从版本 2408 (内部版本 17928.20114) 开始,从版本 2408 (内部版本 17928.20216) 开始,Excel 中的 Python 现在可供运行 Windows 当前频道的企业和企业版用户使用。从版本 2405 (内部版本 17628.20164) 开始,在 Windows 上运行当前频道的家庭和个人用户可以使用预览版。 通过 Microsoft 365 预览体验计划运行当前频道 (预览版) 的教育用户可以使用 Excel 中的 Python 预览版。 它目前不适用于半年企业频道。

它将首先推出到 Excel for Windows,然后在以后推出到其他平台。 有关更多可用性信息,请参阅 Excel 中的 Python 的可用性

如果在使用 Excel 中的 Python 时遇到任何问题,请通过在 Excel 中选择帮助 > 反馈来报告这些问题。

不熟悉 Excel 中的 Python? 从 Excel 中的 Python 简介Excel 中的 Python 入门开始。

使用开源 Python 库创建绘图和图表 

Excel 中的 Python 附带一组由 Anaconda提供的核心 Python 库。 本文介绍如何使用 Python 库(如 seaborn和 Matplotlib)创建绘图和图表。 若要详细了解 Excel 中的 Python 可用的开源库,请参阅开源库和 Excel 中的 Python。 

本文中的示例使用了鸢尾花数据集。 下载此示例工作簿,与文章一起配合参考:python-in-excel-iris-dataset.xlsx。 

使用 seaborn 创建配对绘图 

此示例将演示如何创建鸢尾花数据集的配对绘图的可视化效果。 配对绘图是绘图和图表的矩阵,用于比较数据集中每个变量之间的关系。 在这种情况下,鸢尾花数据集包含四列数值数据:sepal_lengthsepal_widthpetal_lengthpetal_width。 

在 Excel 中使用 Python 创建具有 seaborn 库的对图。

Excel 中的 Python 将使用 seaborn 库创建可视化效果。 将使用以下导入语句为 Excel 中的 Python 自动导入 seaborn库,以便使用别名 SNS 引用它。  

import seaborn as sns 

要使用 seaborn 库创建鸢尾花数据集的配对绘图,请执行以下步骤:

  1. 在 Excel 单元格的 Python 中输入以下代码片段。 此代码片段会将配对绘图存储为名为 pairplot 的变量。  它将使用 seaborn 库(别名 sns)和 seaborn 函数 pairplot 创建配对绘图。 pairplot = sns.pairplot(xl("Table1[#All]", headers=True)) 作为 pairplot 函数的参数,此代码片段会使用自定义 Python 函数 xl(),并引用工作表中的第一个表 Table1。 它将包括整个表的内容(如 [#All]),并表明该表包含标题行(如 headers=True)。 在此示例中,工作表中的 Table1 包含鸢尾花数据集。 请参阅数据帧中的对图预览。

    注意: 如果遇到任何错误,请参阅排查 Excel 中的 Python 错误了解详细信息。 

  2. 提交 Python 公式后,Excel 中的 Python 将返回图像对象中的配对绘图可视化效果。 你可以选择图像对象单元格中的卡片图标以查看可视化效果的预览。 请参阅 DataFrame 卡中的绘图预览。

  3. 将可视化效果保留为图像对象,以继续将其用于 Python 计算。 将图像提取到 Excel 网格以调整其大小,并详细地查看每个绘图。 若要将图像提取到网格,请右键单击或按 Ctrl+单击包含图像对象的单元格,然后从菜单中选择在单元格上显示绘图 有关提取图像对象的其他信息,请参阅本文将图像对象提取到 Excel 网格文章部分。

使用 Matplotlib 创建散点图 

本示例将介绍如何使用鸢尾花样本数据集创建散点图。 散点图将显示数据集中两个数值变量之间的关系。 该示例创建类似于以下屏幕截图的散点图,比较 sepal_width 值和 sepal_length 值。

在 Excel 中使用 Python 使用 matplotlib 库创建散点图。

Excel 中的 Python 将使用 Matplotlib 开源库创建可视化效果。 将使用以下导入语句为 Excel 中的 Python 自动导入 Matplotlib库,你可以通过 plt 引用它。  

import matplotlib.pyplot as plt 

要使用 Matplotlib 库创建鸢尾花数据集的散点图,请执行以下步骤:

  1. 在 Excel 中的 Python 单元格中,使用 Matplotlib 散点函数,并输入 尾花数据集的sepal_length列和 sepal_width 列作为参数。 在此示例中,工作表中的 Table1 包含鸢尾花数据集。plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))

  2. 将标签和标题添加到散点图。  # Label the x and y axes of the plot. plt.xlabel('sepal_length') plt.ylabel('sepal_width')   # Add a title to the plot.  plt.title('Sepal length and width analysis')

    注意: 你可以将此代码片段添加为上一步中的 Python 公式后的附加代码行,在同一 Excel 单元格中,也可以在工作簿的 Excel 单元格中的新 Python 中输入它。 如果选择在新单元格中输入它,请确保遵循行主计算顺序规则,并在第一个单元格后输入它。

  3. 提交 Python 公式后,Excel 中的 Python 将以图像对象形式返回散点图可视化效果。 你可以选择图像对象单元格中的卡片图标以查看可视化效果的预览。  在数据帧中查看散点图的预览。

    注意: 如果遇到任何错误,请参阅排查 Excel 中的 Python 错误了解详细信息。  

  4. 将可视化效果保留为图像对象,以继续将其用于 Python 计算。 将图像提取到 Excel 网格以调整其大小,并详细地查看绘图。 若要将图像提取到网格,请右键单击或按 Ctrl+单击包含图像对象的单元格,然后从菜单中选择在单元格上显示绘图 有关提取图像对象的其他信息,请参阅本文将图像对象提取到 Excel 网格文章部分。

将图像对象提取到 Excel 网格

如本文中的示例所示,Python 库(如 seachron 和 Matplotlib)可以将数据可视化效果返回到 Excel 单元格。 默认情况下,Excel 中的 Python 会将这些可视化效果作为图像对象返回。 

选择图像对象单元格中的卡片图标以查看可视化效果的预览。

请参阅 DataFrame 卡中的绘图预览。

可通过两种方法将图像提取到 Excel 网格:将图像显示为单元格上的绘图或在单元格中显示图像。

在单元格上显示图像

请按照以下步骤将图像显示为单元格上的绘图。

  1. 右键单击或按 Ctrl+单击包含图像对象的单元格,然后从菜单中选择在单元格上显示绘图(或使用快捷方式 Ctrl+Alt+Shift+C)。 这会创建图像的副本,该副本将浮在 Excel 网格上,并且可以轻松调整大小。 原始图像对象将保留在原始单元格中。

  2. 选择并拖动绘图图像,可以使其在工作表中移动。 选择并拖动图像四角和侧面的节点,即可调整图像大小。 使用“创建引用”图标创建浮动绘图可视化效果。

在单元格中显示图像

请按照以下步骤在单元格中显示图像。

  1. 将图像对象作为 Excel 值返回。 选择图像对象单元格,转到编辑栏中的 Python 输出菜单,然后选择 Excel 值。   使用编辑栏旁边的 Python 输出菜单更改输出类型。 绘图图像即可显示在单元格中。

    提示: 要在 Python 对象和 Excel 值之间切换 Python 公式结果,请使用快捷方式 Ctrl+Alt+Shift+M。 如需了解更多快捷方式,请参阅 Excel 中的 Python 快捷方式

  2. 绘图图像的大小取决于单元格的大小。 你可通过增大单元格或合并单元格来增加图像的大小。

对非英语语言使用不同的字体 

若要绘制使用非拉丁字母字符(如中文、韩语或泰语)的数据图表,请使用 excel.FontPath。 默认情况下,Excel 中的 Python 将非拉丁字母字符呈现为空正方形(“□”)。 若要解决此问题,excel.FontPath 可以使用 excel 模块调用其他字体并呈现字符。

以下字体可用。 在 Python 代码中,该属性会附加到 excel.FontPath 上。 路径将引用属性调用的字体文件。

属性

路径

孟加拉语

/usr/share/fonts/Vrinda.ttf

简体中文

/usr/share/fonts/SimSun.ttf

繁体中文

/usr/share/fonts/MingLiU.ttf

印地语

/usr/share/fonts/Mangal.ttf

日语

/usr/share/fonts/Meiryo.ttf

韩语

/usr/share/fonts/Batang.ttf

泰语

/usr/share/fonts/THSarabunPSK.ttf

使用 excel。用于显示简体中文绘图标签的 FontPath

以下屏幕截图显示了使用 excel.FontPath以简体中文字符表示的图表。 屏幕截图后面的代码示例演示如何使用 excel.FontPath.CHINESE_SIMPLIFIED 显示简体中文库中的字符。

正确呈现字符的图表

使用 excel 的代码示例。FontPath

此代码示例演示如何使用 excel.FontPath.CHINESE_SIMPLIFIED 在前面的屏幕截图中显示的绘图标签中生成绘图和简体中文字符。 

  • import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    
    # Set the font path. This returns '/usr/share/fonts/simsun.ttf'.
    font_path = excel.FontPath.CHINESE_SIMPLIFIED
    
    # Point the properties to the font path.
    font_properties = FontProperties(fname=font_path)
    plt.rcParams['font.family'] = font_properties.get_name()
    
    # Make the plot.
    myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文')
    
    # Show the plot.
    plt.show()

相关文章 

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。