科研绘图 | Matlab绘图整理之柱状图 (入门小白版)

        绘图时可以使用实时编辑器。

        主要是根据去年我在CSDN上看到的资料集几家之长整理的哦,我不是计算机专业的,科研还处于起步阶段,更新文章比较慢和随缘。大家有需要收藏吧,不是很建议关注。

  • 柱状统计图

bar ,bar3, barh和bar3h,其中 bar 和bar3分别用来绘制二维和三维竖直方图, barh 和bar3h分别用来绘制二维和三维水平直方图,调用格式是:

 	bar ( x , y )

其中 x 必须单调递增或递减, y 为 n*m 矩阵,可视化结果为 m 组,每组n个垂直柱,也就是把 y 的行画在一起,同一列的数据用相同的颜色表示;

bar ( x , y , width )(或 bar ( y , width ))

上面的代码是指定每个直方条的宽度,如 width >1,则直方条会重叠,默认值为 width =0.8;

    bar (…,' grouped ')

上面的代码是使同一组直方条紧紧靠在一起;

    bar (…,' stack ')

上面的代码是把同一组数据描述在一个直方条上。

1.柱状图(竖直)

x = 2012:1:2020;    %分别为:最小:间距:最大
y = [1, 4, 2, 8, 49, 122, 358, 859, 1477];%每个条形对应的值
b = bar(x, y, 0.6) %0.6表示条形图宽度,可修改b = bar(x, y, 0.6,’red’)可以改颜色,默认是下图的蓝色
xlabel('年份')
ylabel('数值')
title('xxx销售量')%图名
set(gca,'ylim',[0,1600],'ytick',[0:200:1600]); %纵坐标数值为0到1600,每隔200显示刻度
set(gca, 'Ygrid','on'); %纵坐标刻度显示网格
xtips1 = b.XEndPoints;
ytips1 = b.YEndPoints; %获取 Bar 对象的 XEndPoints 和 YEndPoints 属性
labels1 = string(b.YData); %获取条形末端的坐标
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom') %将这些坐标传递给 text 函数,并指定垂直和水平对齐方式,让值显示在条形末端上方居中处

如果一个年份对应几个柱:

y = [10,20,30,40,50;
   10,20,30,40,50;
   10,20,30,40,50];

每个柱子对应的数据之间用;隔开。

2.柱状图(水平)

clear;
clc;
c = ['不感兴趣','觉得没必要','反正首页会刷到','其他'];
x = [1,2,3,4];
y = [21.43,30.95,57.14,7.14];
b=barh(x,y,0.6); %使用横向的坐标
set(gca,'YTickLabel',{'A','B','C','其他'});
set(gca,'xticklabel',{'0%','10%','20%','30%','40%','50%','60%'});

%显示每个柱子上标注
 xtips=b(1).XEndPoints;
 ytips=b(1).YEndPoints;
 label=string(b(1).YData)+'%';
 text(ytips,xtips,label,'HorizontalAlignment','left')

3.三维柱状图

普通三维图:(可以用鼠标拖动,找一个适宜的视角,或引入view函数)

y = [5 8 2 9
     3 5 8 6];
figure
bar3(y)

参考:CSDN博客-Matlab绘图系列教程-基础绘图:柱状图 (bar函数 )

CSDN博客-【MATLAB基础绘图第2棒】绘制柱状/饼图填充图

当时应该还参考了别的,找不到了qwq

Matlab中的柱形图是一种常用的数据可视化方式,可以用来展示不同数据之间的比较关系。你可以使用`bar`函数来创建柱形图。具体操作如下: 1. 创建一个图窗,并设置两个子图。 ```matlab figure; ax1 = subplot(2,1,1); ax2 = subplot(2,1,2); ``` 2. 在上部子图中绘制一个简单的条形图,可以使用`bar`函数。 ```matlab y = [1 2 3; 4 5 6]; bar(ax1,y); ``` 3. 在下部子图中绘制堆叠条形图,即将数据堆叠在一起展示。同样使用`bar`函数,并设置参数`'stacked'`。 ```matlab bar(ax2,y,'stacked'); ``` 这样就可以在Matlab中创建出带有两个子图的柱形图了。 如果你想更加详细地了解在Matlab中创建柱形图的方法,可以参考下面这段代码: ```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); set(gca,'XLim',[0.4 6],'XTick',1.2:1:5.2,'XTickLabel',1:5); xlabel("X"); ylabel("y"); legend("a", "b", "c"); title("堆叠柱状图"); ``` 这段代码展示了如何使用`bar`函数创建一个堆叠柱状图,并对图形进行一些自定义设置,如设置柱宽、轴范围、刻度等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Matlab中画柱状图详细教程bar函数使用方法(二维附matlab代码)柱状图创建/位置/颜色/图例](https://blog.csdn.net/iii66yy/article/details/124495337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [matlab画图(一、柱状图)](https://blog.csdn.net/lucklycoder/article/details/127390603)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值