matlab画图(一、柱状图)

🐋 前言:柱状图利用柱子的高度,反映数据的差异。肉眼对高度差异很敏感,辨识效果非常好。柱状图的局限在于只适用中小规模的数据集。


🐬 目录:


一、数据获取

统计图的绘制离不开数据的支撑。一般来说,数据加载主要以在程序中手动输入和从excel表中读取为主。手动输入即将想要绘制的数据直接放置到数组中,从excel表读取数据需要借助xlsread函数,从excel表中读取到的数据同样也将保存到一个数组中。

🐋 1.1 手动输入数据

a = [1 2 3 4 5] 或者 a = [1,2,3,4,5]

在这里插入图片描述

🐋 1.2 从excel(data.xlsx)中读取指定位置的数据

在这里插入图片描述

data = xlsread(“C:\Users\Administrator\Desktop\data.xlsx”,“B1:C3”)

在这里插入图片描述

二、简单柱状图

场景:根据考试成绩区间的学生人数绘制柱状图
1 位学生在50~59分之间
2 位学生在60~69分之间
17位学生在70~79分之间
8 位学生在80~89分之间
7 位学生在90~100分之间

🍁 MatLab代码如下所示:

x = [50 60 70 80 90];
y = [1 3 17 8 7];
GO = bar(x,y,'edgeColor','green');  %使用bar函数绘制柱状图
GO.FaceColor =  [196/255,74/255,74/255];  %通过GO句柄自定义柱形的颜色
%axis([0 100 0 20])%坐标范围
xlim([30 100]);     %x坐标显示范围
xticks(30:10:100);  %x坐标刻度显示
xlabel('分数','fontsize',17,'FontName','宋体','Fontweight','bold');
ylabel('学生人数');
title('期末考试成绩')

代码运行效果如下:
在这里插入图片描述

三、分组柱状图

场景:我国汽车销量和产量每年都在发生变化,以时间变化为基准,根据表中数据画出对应的柱状图
在这里插入图片描述

🍁 MatLab代码如下所示:

x = 1:1:9; %第一个1是起始端点,中间的是步长,最后一个是结束端点
%纵坐标
samp1 = [2211.68,2372.29,2450.33,2811.9,2901.5,2780.9,2572.1,2522.5,2608.2];          
samp2 = [2198.41,2349.19,2459.76,2802.8,2887.9,2808.1,2576.9,2531.1,2627.5];               

bar1(:,1) = samp1;
bar1(:,2) = samp2;
GO = bar(bar1,1,'EdgeColor','black');%边框颜色为黑色
GO(1).FaceColor = [196/255,74/255,74/255];%设置第一个柱状图的颜色
GO(2).FaceColor = [80/255,110/255,131/255];%设置第2个柱状图的颜色
ylim([2000 3000])                              %y轴显示的范围,根据需要调整
ylabel('车辆数量(万辆)','FontName', '宋体','FontSize',18)
 
% 图例
legend({'产量','销量'},'fontsize',18);
set(gca,'Xticklabel', ["2013","2014","2015","2016","2017","2018","2019","2020","2021"])  %gca 坐标的句柄

xlabel('时间(年份)','fontsize',18,'FontName','宋体','Fontweight','bold');
title("2013-2021年中国汽车产销量变化图",'Fontsize',20)

代码运行效果如下所示:
在这里插入图片描述

四、堆叠柱状图

场景:a和b是一个整体,且各自以1的速度增长,c为独立个体,以1的速度下降,画出堆叠柱状图。

🍁 MatLab代码如下所示:

a = 1:5;
b = 2:6;
c = 5:-1:1;
figure;

bar([a;b]',"stacked","BarWidth",0.4);
hold on
bar(c,"BarWidth",0.4,'Xdata',1.4:1:5.4);

%将x刻度整体右移0.4,以保证图像居中
set(gca,'XLim',[0.4 6],'XTick',1.2:1:5.2,'XTickLabel',1:5);

xlabel("X");
ylabel("y");

legend("a", "b", "c");

title("堆叠柱状图")

代码运行效果如下所示:
在这里插入图片描述

感谢观看,如对内容有疑惑或补充,欢迎留言讨论,共同进步!!!

在这里插入图片描述

  • 39
    点赞
  • 203
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值