利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:
小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂

Matlab 复制代码
clear;  close all;
x = 1:3;
aa=[28.6321521955954	26.2453660695847	21.6910234851208
6.93747104431360	6.25442246899816	3.34283595856424
5.51365061796319	4.87774309343424	2.70568333347838
4.59777539782697	4.28903471314861	3.16193666075181
4.55663777155947	4.34610811189430	3.46868724869320
5.45340325106840	5.31864869437005	4.56672763360090
6.38233972914207	6.26223624990860	5.33221716201704
10.3353397360388	10.1738872649333	8.27222029782058
12.7886167071045	12.5588690627220	10.1366328711644
5.35383334634117	4.61859457908258	2.89963920102506];
 
b=bar(x,aa,'FaceColor','flat');  %%bar函数的自动编码颜色只有七种类型,故下面需要人为多提供三钟颜色
b(8).FaceColor =[0 1 0];b(9).FaceColor=[1 0 0];
b(10).FaceColor=[0 0 0];

ylabel('RMSE (cm)');
set(gca,'FontName','Times New Roman','FontSize',15);
xticklabels({'Amazon', 'Sao Francisco', 'Mississippi'});

grid on;
%% 添加数值标注
tt=10;  %%设置标注的数字大小
for i = 1:numel(x)
    text(x(i)-0.35, aa(1,i), sprintf('%.2f',aa(1,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)-0.25, aa(2,i), sprintf('%.2f',aa(2,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)-0.18, aa(3,i), sprintf('%.2f',aa(3,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)-0.1, aa(4,i), sprintf('%.2f',aa(4,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)-0.02, aa(5,i), sprintf('%.2f',aa(5,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)+0.05, aa(6,i), sprintf('%.2f',aa(6,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)+0.15, aa(7,i), sprintf('%.2f',aa(7,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)+0.25, aa(8,i), sprintf('%.2f',aa(8,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)+0.35, aa(9,i), sprintf('%.2f',aa(9,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
    text(x(i)+0.4, aa(10,i), sprintf('%.2f',aa(10,i)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",tt)
end
legend('1','2', '3', '4', '5', '6','7','8','9','10');

欢迎评论区或者私信交流,多多点赞多多支持,谢谢!

相关推荐
电子连接器CAE与高频分析2 小时前
matlab求和∑函数方程编程?
开发语言·算法·matlab
callJJ3 小时前
从零开始的图论讲解(1)——图的概念,图的存储,图的遍历与图的拓扑排序
java·数据结构·算法·深度优先·图论·广度优先·图搜索算法
脱脱克克4 小时前
2025.4.9 华为机考 第1题-补丁版本升级
python·算法·华为
liuluyang5307 小时前
C语言C11支持的结构体嵌套的用法
c语言·开发语言·算法·编译·c11
勤劳的进取家8 小时前
贪心算法之最小生成树问题
数据结构·python·算法·贪心算法·排序算法·动态规划
牛奶咖啡.8548 小时前
第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组真题
c语言·数据结构·c++·算法·蓝桥杯
亓才孓8 小时前
[leetcode]stack的基本操作的回顾
算法
小美爱刷题8 小时前
力扣DAY46-50 | 热100 | 二叉树:展开为链表、pre+inorder构建、路径总和、最近公共祖先、最大路径和
算法·leetcode·链表
Fanxt_Ja9 小时前
【数据结构】红黑树超详解 ---一篇通关红黑树原理(含源码解析+动态构建红黑树)
java·数据结构·算法·红黑树
Rany-9 小时前
市政消防栓智能监控管理系统(Axure高保真原型)
人工智能·经验分享·学习方法