如何在Matlab绘图中为数据点与其对应标签添加间距?
解决MATLAB绘图中黑点与红色标签的间距问题
嘿,这个问题很好解决!你现在的标签和黑点重叠,是因为text函数用了和plot完全一样的坐标。只需要给标签的坐标加一个小偏移量,就能轻松拉开两者的距离。
修改后的完整代码
BBU = [41.3822706100000 2.12861183500000; 41.3951737600000 2.14739148800000; 41.4053832900000 2.15673183600000; 41.4083225700000 2.16864721900000; 41.4032320900000 2.20663354500000; 41.3939710600000 2.19351888300000; 41.3821269800000 2.18958664200000; 41.4188280200000 2.19925787100000; 41.3591028400000 2.13697455100000; 41.3813193100000 2.17610240700000; 41.3891879400000 2.17709430900000; 41.3932500600000 2.15626943700000; 41.3838562100000 2.16188867500000; 41.3720818100000 2.16253718100000; 41.3768090000000 2.14498916300000; 41.4001588800000 2.17864126300000; 41.4204607900000 2.18283805400000; 41.4010364200000 2.16198599800000]; nr_BBU = 18; % 定义偏移量,数值可以根据你的绘图缩放比例调整 offset = 0.002; hold on % 把hold on移到循环外,效率更高 for i=1:nr_BBU plot(BBU(i,2), BBU(i,1), 'k.', 'MarkerSize',25) labels = cellstr(num2str((i)')); % 给标签的x和y坐标都加上偏移,让标签出现在黑点的右上方 text(BBU(i,2)+offset, BBU(i,1)+offset, labels, ... 'HorizontalAlignment','center',... 'VerticalAlignment', 'bottom', ... 'Color', 'r', 'FontSize', 12) end hold off
关键修改点说明
- 新增偏移量变量:
offset用来统一控制标签和黑点的间距,你可以根据实际绘图的缩放效果调整这个数值(比如觉得间距太小就改成0.003,太大就改成0.001)。 - 调整标签坐标:在
text函数中,给BBU(i,2)(x坐标)和BBU(i,1)(y坐标)分别加上offset,让标签从黑点的位置偏移开。如果只想让标签在某个方向偏移(比如右侧或上方),只需要给对应方向的坐标加偏移即可。 - 优化
hold on位置:原代码每次循环都执行hold on,其实只需要在循环前执行一次就够了,这样更高效。
内容的提问来源于stack exchange,提问作者krm76
相关产品推荐
相关产品推荐

