我目前正在编写一个程序,该程序将绘制X射线光谱图,然后计算所有峰的位置以及它们应该被标记的位置。但是,我不确定如何使用excel vba添加每个峰的标签。我知道图表上峰顶的x和y坐标(基于轴单位)。是否有任何方法可以使用该信息将标签略微放置在该点的右侧或略微偏向该点的右侧?
下面,我列举了一个我想要的例子。
根据输入的数据,峰值将是不同的元素。峰的尖端也将处于不同的x和y位置。所以我认为最好是根据峰尖的x和y坐标添加标签,因为我总是知道这些值。
在互联网上浏览,如果可能的话,我无法找到有关如何执行此操作的任何真实信息。我希望你们能帮助我!
答案 0 :(得分:2)
绝对可行。您可以向ChartArea对象添加形状(如文本框)。然而,在这种情况下,似乎更容易劫持点数' DataLabel
对象并操纵其中的文本。
Dim pt As Point
Dim p As Long
Dim dl As DataLabel
Dim srs As Series
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(1).Chart
Set srs = cht.SeriesCollection(1)
srs.HasDataLabels = False '## Turn off the data labels
For Each pt In srs.Points
p = p + 1
If [logic or function to determine your peaks] Then
pt.HasDataLabel = True
Set dl = pt.DataLabel
dl.Text = "whatever you want it to be"
End If
Next