如何按名称标记散点图的点?

57

我正在努力想出如何在Google表格、Excel或Numbers中显示标签。

我有像这样的信息

name|x_val|y_val
----------------
a   |    1|    1
b   |    2|    4
c   |    1|    2

那么我希望我的最终图表看起来像这样。

4|      .(c)
3|
2|  .(b) 
1|  .(a)
 |__ __ __ __
0   1  2  3  4

为什么我不能用名称标记每个点?我只能标记,例如(c)会显示4

唯一的解决方法是D3吗?


1
这是一个散点图吗? - Forward Ed
你提到了D3,那R呢?可以看看这个例子:https://dev59.com/a2Uo5IYBdhLWcg3w-zei。 - zx8754
1
这个问题更适合在超级用户上提问吗? - Eric Schnipke
5个回答

72

之前我认为这是不可能的,直到我去检查了一下。在以前的某个Excel版本中,我无法做到这一点。 我目前正在使用Excel 2013。

以下是你想在散点图中完成的内容:

  1. 右键单击数据点

  2. 选择“格式化数据标签”(请注意,您可能需要先添加数据标签)

  3. 在“值来源于单元格”中打勾
  4. 单击“选定范围”并选择要放置在点上的标签范围

Example Graph

更新:颜色化个别标签

要单独着色标签,请执行以下步骤:

  1. 选择一个标签。当您首次选择时,该系列的所有标签应获得像上面图表中一样的框。
  2. 选择要编辑的单个标签。只有您选择的标签才应该有像下面图表中的框。
  3. 在右侧,如下所示,选择“文本选项”。
  4. 如果需要,请展开“文本填充”类别。
  5. 在类别列表中从下往上数第二个是“颜色”,从调色板中选择您想要的颜色。

如果您选择整个系列而不是单个标签,则文本格式更改应适用于所有标签而不仅仅是一个标签。

Colouring


9
我刚刚让IT为我安装了Mac版的Microsoft Office 2016,但不幸的是,Mac上的Excel没有这个功能 :(。还是谢谢啦。 - loonyuni
1
这太棒了。我能找到的所有微软官方文档都是用笨拙的宏来解释如何做到这一点。这是完美的解决方案。 - Tom Bowen
我在Windows上使用Excel 365(版本1805),但是我没有“从单元格获取值”的选项:(还有其他方法吗? - Si Mon
@SiMon 我不知道有没有这样的选项。如果你的数据集很小,可能可以使用其他答案中提供的选项。 - Forward Ed
你如何在这里使每个标签都有不同的颜色? - nyan314sn
显示剩余2条评论

6

以上方法对我都没有起作用。我用的是Microsoft 360在Mac上。我找到了这个方法,它起作用了:

这种解决方法适用于Excel 2010和2007,在数据点较少的情况下效果最佳。

双击标签两次以选择它。 单击公式栏。 键入 =。 使用鼠标单击包含您想要使用的值的单元格。 公式栏将更改为类似于=Sheet1!$D$3

重复步骤1到5,处理剩余的数据标签。

简单易行。


谢谢。我在PC上使用Excel 2016,但这帮助我找到了如何标记一个点(通过双击选择它,然后右键单击),而不是像顶部答案中那样标记所有点。 - Chris Jenks

3

2

另一种复杂的方法是将所有数据点作为一个系列绘制,以获得连接线。然后将每个点作为自己的系列进行绘制。最后,设置数据标签以显示每个单独数据点的系列名称。

简而言之,这对于小型数据集或仅涉及数据集的关键点可以正常工作。


0

如果使用VBA是一个选择,并假设您有一个名为'Table1'的表单:

Label|x_val|y_val
----------------
a   |    1|    1
b   |    2|    4
c   |    1|    2

这个程序应该可以工作:

Sub labelDatapoints()
    Dim r As Integer
    With ActiveSheet.ChartObjects(1).Chart                                                                  'The scatter plot
        .SeriesCollection(1).ApplyDataLabels
        For r = 1 To Range("Table1[Label]").Rows.Count                                                      'iterate through all data points
                .SeriesCollection(1).Points(r).DataLabel.Text = Range("Table1[Label]").Cells(r).Value       'add the custom label to the current datapoint
        Next r
    End With
End Sub

修改自https://www.get-digital-help.com/dynamic-data-labels-in-a-chart/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接