matlab画图(一、柱状图)

本文介绍了如何在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("堆叠柱状图")

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

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

在这里插入图片描述

### Matlab 中将彩色图像转换为灰度图像 在Matlab中,可以利用内置函数`rgb2gray()`来完成这操作。具体过程涉及加载图像文件至工作空间并调用该函数进行颜色模式转变。 #### 使用 `imread` 函数读取图片数据 为了能够对指定路径下的彩色图像执行处理命令,需先通过`imread`指令获取其像素矩阵表示形式: ```matlab RGB = imread('F:/1/tuxiang.jpg'); % 将图像读入工作区 ``` 此段代码会把位于给定位置的JPEG格式照片作为三维数组存储于变量`RGB`之中[^1]。 #### 应用 `rgb2gray` 进行色彩空间变换 紧接着应用`rgb2gray`方法可有效降低维度,从而得到对应的单通道亮度分布图——即所谓的“灰阶”版本: ```matlab Y = rgb2gray(RGB); % 将图像灰度化 ``` 上述语句中的输入参数应为先前定义好的三通道彩照对象;而输出则是个二维整型数值集,代表各点处相对明暗程度。 #### 展现最终成果 最后借助`imshow`工具展示所得结果,以便直观检验算法效果: ```matlab imshow(Y) % 显示灰度图像 ``` 对于更复杂的可视化需求,则可以通过创建子窗口的方式对比原貌与加工后的差异: ```matlab subplot(1, 2, 1); imshow(colorImage); title('彩色图像'); subplot(1, 2, 2); imshow(grayImage); title('灰度图像'); ``` 这段脚本不仅呈现了原始素材,还同步展现了经过预处理之后的新形态,方便观察者评估变化情况[^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值