首页 > 解决方案 > 在 XY 散点图上用线居中数据标签

问题描述

我正在创建以下图表: 在此处输入图像描述

但是我需要将每个数据标签集中在创建的线而不是线的端点上。我有以下内容:

    Set mypts = mysrs.Points
    mypts(mypts.Count).ApplyDataLabels

        With mypts(mypts.Count).DataLabel
            .ShowSeriesName = True
            .ShowCategoryName = False
            .ShowValue = False
            ' optional parameters
            .Orientation = 0
            .Position = xlLabelPositionAbove
            .Font.Size = 10
            .Font.Bold = True
        End With

有没有人知道如何使数据标签居中,我给每个系列起了一个名字?

标签: vbachartsalignment

解决方案


将每条线上方的标签居中将涉及创建另一个数据系列来计算线的中心。在无法访问您的数据的情况下,我求助于@JonPeltier关于连接两个 XY 数据系列的出色帖子

您的问题涉及您的自定义 VBA 代码。我这里的例子应该作为设置数据所需的步骤。根据您的选择,您可以在工作表上设置数据,或者让您的 VBA 代码创建这个“额外”数据系列以添加到图表中(同样,因为我不知道您的数据是什么样的,我不推荐针对您的问题的解决方案)。

我不会重复创建图表的所有细节,但这里是数据和结果图表的示例:

在此处输入图像描述

在此处输入图像描述

现在,设置中点数据并不困难。中点是一个快速公式=((D2-A2)/2)+A2,向下复制列。

添加到图表中,选择“中点”和“值”列并cntl+c复制数据,然后选择图表和“选择性粘贴”作为新的数据系列。

在此处输入图像描述

快速说明:不要将中点数据与 A 和 B 数据放在同一行。我最初是这样做的,Excel(以它自己的个人智慧)将数据与 A 列相关联。图表上的结果并不漂亮。

最后一步是选择新数据系列并选择“添加数据标签”,然后选中“来自单元格的值”框。选择标签的数据范围,例如单元格C17:C20

在此处输入图像描述

最后,格式化标签以仅显示“来自单元格的值”(取消选中“Y”数据标签)并将标记设置为“无”。然后你有你的行的居中标签。

在此处输入图像描述


推荐阅读