如何使用matlab在干图中的每个数据点上放置标签

How to put labels on each data points in stem plot using matlab

所以这是我的 x 和 y 数据:

x = [29.745, 61.77, 42.57,  70.049, 108.51, 93.1,   135.47, 52.79,  77.91,  116.7,  100.71, 146.37, 125.53]
y = [6, 6, 12,  24, 24, 12, 24, 8,  24, 24, 24, 48, 8]

stem(x,y);

所以我想在我的干图上标记每个数据点,这是我想要的输出:

我是用paint编辑的,matlab可以做垂直标注吗?图像是什么样子的?请帮忙

可以!您只需提供文本注释的 rotation 属性 值为 90 即可。

示例:

clear
clc


x = [29.745, 61.77, 42.57,  70.049, 108.51, 93.1,   135.47, 52.79,  77.91,  116.7,  100.71, 146.37, 125.53]
y = [6, 6, 12,  24, 24, 12, 24, 8,  24, 24, 24, 48, 8]

hStem = stem(x,y);

%// Create labels.
Labels = {'none'; 'true';'false';'mean';'none';'';'true';'hints';'high';'low';'peas';'far';'mid'}

%// Get position of each stem 'bar'. Sorry I don't know how to name them.
X_data = get(hStem, 'XData');
Y_data = get(hStem, 'YData');

%// Assign labels.
for labelID = 1 : numel(X_data)
   text(X_data(labelID), Y_data(labelID) + 3, Labels{labelID}, 'HorizontalAlignment', 'center','rotation',90);
end

给出以下内容:

最后一个标签有点高,因此您可能想重新调整轴的比例,但您明白了。