我有 25 对 (x,y) 坐标。这些对中的每一对都对应一个国家。我想在散点图上绘制 25 个点,并将每个点的国家名称直接放在散点图上的点旁边。我不知道如何在 MATLAB 或 Octave 中执行此操作(我同时拥有 MATLAB 和 Octave 并且不介意我使用哪个,这就是我询问两者的原因)。
假设我将 (x,y) 坐标和相应的国家/地区标签放在 25 行和 3 列的矩阵中,标签位于第一列。有谁知道我可以用于所需图表的命令?
字符串不能很好地与矩阵一起使用,所以我正在稍微调整你的存储格式。这是测试数据:一个 25x2 的坐标矩阵和一个 25x1 的字符串元胞数组。
p = rand(25,2);
names = repmat({'name'}, 25, 1)
您将不得不稍微使用偏移量,但这是一个想法:
scatter(p(:,1), p(:,2))
%# Compute some offsets for the lower-left of the text box, based
%# on overall size of the plot
offset_x = diff(xlim) * .01;
offset_y = diff(ylim) * .01;
text(p(:,1)+offset_x, p(:,2)+offset_y, names)