MATLAB绘制各式柱状图

  • 1 分组绘制柱状图
    • 1.1 案例1:常规分组柱状图
  • 2 绘制渐变柱状图
    • 2.1 案例
  • 3 绘制多组柱状图并修改文字颜色一致
    • 3.1 案例
  • 4 绘制双轴-倒立柱状图
  • 5 绘制区间位置柱状图
  • 参考

1 分组绘制柱状图

1.1 案例1:常规分组柱状图

绘制分组数据,并对数据格式和边框等进行设置,成图如下所示:

MATLAB绘制代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;
Name = ["生活","生态","工业","农业","汇总"];
xLables = ['Ⅰ' ; 'Ⅱ'; 'Ⅲ'];
mycolor = [53,42,134;21,132,212;55,184,156;215,186,84;247,250,13]./255;x = [1 2 3];
XX = [0    0   0   3.92    2.78
0   0   0   6.63    4.2
0.78    8.37    9.98    22.15   15.46];figure(1);
hold on;
box on;
h = bar(  XX ,'FaceColor','flat');
for k = 1:size(XX,2)h(k).FaceColor = mycolor(k,:);
end
set(gca,'XTick', x , 'XTickLabel',xLables);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');
xlabel("情景",'FontName','宋体','FontSize',14,'Fontweight','bold');                          % 后续调整坐标标题
ylabel("\fontname{宋体}\fontsize{15}缺水率(\fontname{Times New Roman}\fontsize{15}%\fontname{宋体}\fontsize{15})",'FontSize',14,'Fontweight','bold');                          % 后续调整坐标标题
hl = legend( Name );
set(hl,'Box','off','location','NorthWest','NumColumns',1,'FontSize',12,'FontName','宋体');
ax1 = gca;
ax1.FontSize = 12;
ax1.LineWidth = 1;
set(gca,'Layer','top');str= strcat(pathFigure, "Figure1", '.tiff');
print(gcf, '-dtiff', '-r600', str);

2 绘制渐变柱状图

看论文时,被这种图深深吸引了,如果想要在MATLAB中绘制以下图形,应当如何实现呢?

图源:J2022-Observed decrease in light precipitation in part due to urbanization-Scientific Reports

2.1 案例

经过多方学习、尝试后发现,MATLAB实现该过程实属困难,但Origin可以实现,以如下案例为代表,简要演示如何绘图:
1、数据准备
将如下数据输入Origin新建表格Book中,并将B设置为X2

adc  ba  0.52
adc ab  0.25
adc ac  0.8
cda aa  0.33
cda bb  0.48
cda cc  0.53
bbc ca  0.15
bbc cb  0.66
bbc cd  0.88



then,分别将A、B两列设置为列

2、绘制多因子柱状图
选中所有数据,点击绘图-多因子分组柱状图

在【数据列】部分选取C,在子组列部分选取both A and B,then 确定,便得到初步图形



3、加工美化
(先删除了图例,太丑了,看见恶心),以adc组为例展示
按住ctrl后并点击鼠标左键便可选中第一个柱子,双击进入编辑界面

做如下编辑


同理调整ab,ac两根柱子,至此,adc柱状图颜色已调整好,然后添加误差棒

选中图形,然后点击左上角插入-误差棒,单击图中误差棒便可调整颜色及粗细


finally,添加直线以区分组别,选中图形,点击插入-直线,填写位置即可(可以随便填写然后拖动,也可以仔细确定-一步到位),然后单击直线,调整宽度、颜色、形状等
其他字体、柱子宽度、误差棒数据选择等可自行调整、十分简单

3 绘制多组柱状图并修改文字颜色一致


图源:J2022-Observed decrease in light precipitation in part due to urbanization-Scientific Reports

3.1 案例

4 绘制双轴-倒立柱状图

成图如下:

MATLAB代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;X = randn(40,1);
Ymax = 50;
Y = Ymax*randn(40,1);%% 开始绘图
figure(1)
hold on;box on;grid off;
h(3) = area( X,'FaceColor', [0.5529,0.7137,0.8039] ,'LineStyle','none');
[AX,h(1),h(2)] = plotyy( 1:length(X), X, 1:length(X) , Y, 'plot','bar');              % 画双轴,AX(1)左轴,AX(2)右轴,H为曲线本身
set(AX(2),'YDir','reverse','Ylim',[0, Ymax*3 ],'YTick',[0:20:Ymax*2],'FontSize',12,'Fontname', 'Times New Roman');                    % 设置右边轴为倒立
set(gca,'box','off','Ytick',[])
set(AX(1),'YLim',[min(X)*1.5,1.5*max(X)],'YTick',[floor(min(X)*1.5):1:ceil(1.5*max(X)) ],'Fontsize',10,'YColor','k');
%设置坐标轴的标题
h(5) = plot( zeros( length(X) ,1) ,'k-','linewidth',0.75);
set(get(AX(1),'Xlabel'),'String','XLabel','Fontname', 'Times New Roman');
set(get(AX(1),'Ylabel'),'String','YLabel1','Fontname', 'Times New Roman');
set(get(AX(2),'Ylabel'),'string','YLabel2','LineStyle','none','Fontname', 'Times New Roman');
set(gca,'Layer','top','FontSize',12,'Fontname', 'Times New Roman');str= strcat(pathFigure, "Figure 1", '.jpg');
print(gcf, '-djpeg', '-r600', str);

5 绘制区间位置柱状图

区间范围柱状图是柱状图的一种,能够更加清晰地展示各类目数据区间范围分布的差异。支持通过获取数据的最小值和最大值之间的范围,展示不同类目下柱图的数据样式。 如下图所示:

图源:J2022-Amplification of non-stationary drought to heatwave duration and intensity in eastern China Spatiotemporal pattern and causes

参考

【MATLAB基础绘图第7棒】绘制各式柱状图相关推荐

  1. 【MATLAB基础绘图第10棒】绘制各种面积图

    MATLAB绘制面积图相关函数 1.1 area-填充区二维绘图 MATLAB中文帮助 语法: area(___,basevalue) basevalue 对应于水平基线 1.2 fill-创建二维填 ...

  2. 【MATLAB基础绘图第2棒】绘制柱状/饼图填充图

    MATLAB绘制柱状填充图 方法1:hatchfill2工具 1.1 案例1:柱状图填充 1.2 案例2:饼图填充 方法2:applyhatch函数 2.1 案例1:柱状图填充 2.2 案例2:饼图填 ...

  3. 【MATLAB基础绘图第12棒】绘制饼状图

    MATLAB绘制饼状图 1 基础案例:修改颜色及字体 参考 1 基础案例:修改颜色及字体 成图如下: MATLAB代码如下: clc close all clear %% 导入数据 load('X.m ...

  4. matlab 基础绘图——随机雪景绘制

    该程序使用的 函数都是matlab中基础的fill scatter plot等函数,但代码的理解需要对矩阵使用有一定熟练度,该程序所绘制的雪景会在一定范围内自行调整,每次运行都会有不一样的惊喜!! 效 ...

  5. origin+matlab基础绘图

    origin: 1.有一个大C 防盗版显示,先保存,之后再打开就会消失 2.符号颜色改了之后,图像中无变化 一样的,先保存再重新打开 matlab: 服从伯努利分布序列,以一定的概率取值为0和1. & ...

  6. Matlab学习|绘图|多图基本绘制|legend函数使用

    代码总览 % 设置自变量与因变量 x = -2*pi:pi/100:2*pi; y_1 = sin(x); y_2 = cos(x); % 绘图 p1 = plot(x,y_1); hold on p ...

  7. Matlab进阶绘图第4期—三维堆叠柱状图/三维堆积图

    三维堆叠柱状图是堆叠图(见Matlab论文插图绘制模板第6期)在三维空间的拓展. 三维堆叠柱状图不仅可以直观地展示各部分总数的对比,还能够看出各部分在总数中所占的比例,从而使数据更加形像. 当然,三维 ...

  8. 技巧 | 使用基础绘图系统绘制「森林图」

    森林图可以很直观地表达数学模型的结果,尤其是在对比多种情境的结果时. R语言中有一些专门绘制森林图的工具包,不过小编目前还没仔细研究过.实际上,通过基础绘图系统的一些简单函数的组合使用就能绘制森林图. ...

  9. MATLAB04:基础绘图

    pdf版本笔记的下载地址: MATLAB04:基础绘图(访问密码:3834) MATLAB04:基础绘图 图线的绘制与装饰 使用`plot()`函数绘制图线 装饰图线 控制坐标轴,边框与网格 绘制多条 ...

最新文章

  1. 变量置换方式linux,Shell变量测试与内容置换
  2. 2018中国智能制造发展高峰论坛(上海站):把握智能制造升级
  3. 8086的两种工作模式_Lora自组网网关的两种工作模式
  4. 互联网1分钟 | 0121 Vlog陌生人社交APP「自言」为年轻人打造生活视频分享平台;周鸿祎:智能设备要警惕“海豚音攻击”...
  5. MVC6 (ASP.NET5) 自定义TagHelper
  6. 动态规划算法-03背包问题
  7. 【二分法万能模板,告别死循环、越界】Leecode 69. Sqrt(x)——Leecode日常刷题系列
  8. 微软程序员利用测试账户套现千万美元,或面临 20 年监禁
  9. 牛客网 【每日一题】5月21日题目 图的遍历
  10. bzoj2424 [HAOI2010]订货 费用流
  11. 察看网页源代码全攻略
  12. 6. 成交量基础分析
  13. 原生 CSS “杀死” 预处理器 Sass!
  14. Linux报错问题:bash: vi: command not found
  15. 为什么我偏爱用 GitHub 来写书?
  16. 中美深度对比,资产管理行业的核心是什么?
  17. python网络编程基础--http
  18. 通信原理(五) 信道编码
  19. Eclipse的Servers视图中无法添加Tomcat6/Tomcat7
  20. 微信小程序“IU同学”使用方法,一起来找同学!

热门文章

  1. URL Protocol- -(coolice)
  2. php子孙树,递归 迭代 得到家谱树 子孙树
  3. 开源办公开发平台丨Mysql5.7两套四节点主从结构环境搭建教程(一)
  4. 简单快速生成序列化ID
  5. 异步电机三相电流滞环矢量控制
  6. android 设备注册,Android平台上PMEM的使用及Platform设备注册(二)
  7. IDEA 2017.3.4 破解到2099年方法
  8. 增值税专用发票 计算机 分类,增值税计算机稽核系统发票比对操作规程(试行)...
  9. APP用户界面设计六基本原则
  10. 跨境电商新手如何建立正确的运营思路