%% Made by Lwcah in 2023-03-23(公众号:Lwcah)
%% 公众号:Lwcah
%% 知乎、B站、小红书、抖音同名账号:Lwcah,感谢关注~
%% 更多MATLAB+SCI绘图教程敬请观看~
%% 三维柱状图的绘制模板
close all;clear all;clc;
%% 1行1列
%% 一幅图的时候figureWidth = 8.5;figureHeight = 8;调整这两个参数就可以
%定义整幅图出现的在电脑屏幕上的位置以及长和宽
%这里有必要解释一下为什么figureWidth要设置为8.5;
%因详细解释需要很长的篇幅,请转公众号观看2023-03-23的文章观看。
figureHandle = figure;
figureUnits = 'centimeters';
figureWidth = 8.5;
figureHeight = 6;
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);
%% 数据准备
% 定义自变量
X = [1 2 3 4 5 6 7 8 9 10 11 12 13];%13
Y = [1 2 3 4];%4
% 定义因变量
Z1 = [1 2 3 4 5 6 7 6 5 4 3 2 1];
Z2 = [2 3 4 5 6 7 7 7 6 5 4 3 2];
Z3 = [2 3 4 5 6 7 7 7 6 5 4 3 2];
Z4 = [1 2 3 4 5 6 7 6 5 4 3 2 1];
Z=[Z1;Z2;Z3;Z4];%4x13
%% 定义字体和字号大小
%% 通常的SCI一般Arial字体和10字号通用
fontnamed='Arial';%字号名字
ssize=10;%字号大小
%% 给定绘图渐变色
load map10%更换map1到map10替换颜色
CM1 = map;
%% 定义绘图参数
b = bar3(Z,0.5);
% hTitle = title(sprintf('(a) RMSE/m (free snow)'));
hXLabel = xlabel('Types','fontsize',ssize,'FontName',fontnamed,'rotation',45);
hYLabel = ylabel('Solutions','fontsize',ssize,'FontName',fontnamed,'rotation',-45);
hZLabel = zlabel('Values','fontsize',ssize,'FontName',fontnamed);
%% 按照Z轴赋色
for k = 1:length(b)
zdata = b(k).ZData;
b(k).CData = zdata;
b(k).FaceColor = 'interp';
end
colormap(CM1);%使用自定义的颜色
cb = colorbar;%添加垂直颜色栏
set(cb,'unit','centimeters','position',[9.3,2.8,0.2,2.5]);%设置垂直颜色栏的位置及大小
%% 画图的标准格式代码
% text(0.5,0.9,'(a) snow','fontsize',ssize,'FontName',fontnamed);%,'horiz','center'
% xlabel('SNR types','fontsize',ssize,'FontName',fontnamed);
% ylabel('R (with snow)','fontsize',ssize,'FontName',fontnamed);
axis([0 14 0 5 0 8]);%XYZ轴的范围
xticks([1 2 3 4 5 6 7 8 9 10 11 12 13]);%画格网的时候的小刻度
xticklabels({'1','2','3','4','5','6','7','8','9','10','11','12','13'});%加x轴刻度标注,'C3-MEO-S2I','C3-MEO-S6I'
yticks([1 2 3 4]);%画格网的时候的小刻度
yticklabels({'1','2','3','4'});%加x轴刻度标注
zticks([0 2 4 6 8]);%画格网的时候的小刻度
zticklabels({'0','2','4','6','8'});%加x轴刻度标注
set(gca,'xticklabelrotation',-45);
set(gca,'yticklabelrotation',45);
% set(gca,'linewidth',1,'fontsize',ssize,'FontName',fontnamed);
% set(gca,'yticklabel',[]);%y轴不显示
% set(gca,'xticklabel',[]);%x轴不显示
grid on;box on;hold on;
%% 背景颜色
set(gcf,'Color',[1 1 1])
%% 设置完毕后,按照所需分辨率、格式输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figW figH]);
fileout = 'bar10';
print(figureHandle,[fileout,'.png'],'-r800','-dpng');
MATLAB - SCI 绘图配色第二期 - 三维柱状图 - 画江湖之不良人
需积分: 0 133 浏览量
更新于2023-03-26
收藏 5.81MB ZIP 举报
在本教程中,我们将深入探讨MATLAB中的三维柱状图绘制和SCI(科学色彩)配色方案的应用。MATLAB是一款强大的数学计算软件,它提供了丰富的图形功能,包括二维和三维图表,使得数据可视化变得轻松易行。在此特定的案例中,我们将关注如何使用MATLAB来创建具有视觉吸引力的三维柱状图,以及如何利用SCI配色方案来提升图表的专业感和美观度。
让我们了解三维柱状图的基本概念。三维柱状图是将数据以立方体的形式在三维空间中展示,通常用于比较不同类别或变量之间的数值差异。在MATLAB中,我们可以使用`bar3`函数来创建三维柱状图。这个函数需要一个矩阵作为输入,矩阵的每一列对应于一个类别的值,每一行对应于一个变量,而每个立方体的高度则表示相应的数值。
例如,假设我们有数据矩阵`data`,可以使用以下代码绘制三维柱状图:
```matlab
x = 1:4; % 分类变量
y = 1:3; % 变量
z = data; % 数据矩阵
figure;
bar3(x, y, z);
xlabel('分类');
ylabel('变量');
zlabel('高度');
```
接着,我们转向SCI配色方案。SCI(Scientific Color Maps)是一套专为科学研究设计的颜色方案,旨在提供高对比度、无色彩感知偏见的配色,适合打印和色盲人士阅读。在MATLAB中,我们可以通过`colormap`函数来应用不同的颜色地图。比如,如果我们想使用SCI的“parula”配色方案,可以添加以下代码:
```matlab
colormap('parula');
```
不过,MATLAB默认的色图可能并不总是与SCI兼容。因此,你需要先下载并导入SCI色图到MATLAB工作空间。在给定的压缩包文件中,可能包含导入这些颜色地图的脚本或函数。一旦导入成功,你可以使用它们来增强你的三维柱状图。
例如,如果导入了名为`sci_cmap`的SCI配色,你可以这样使用:
```matlab
colormap(sci_cmap);
```
为了进一步美化图表,你还可以调整其他属性,如柱状的透明度、颜色边界、轴的刻度和标签等。MATLAB提供了一系列的图形对象属性,如`FaceAlpha`控制柱子的透明度,`EdgeColor`设置边框颜色,`View`改变视图角度等。
通过MATLAB的`bar3`函数和SCI配色方案,我们可以创建既专业又美观的三维柱状图,有效地传达复杂的数据信息。在实际操作中,根据具体需求调整图表参数和色彩搭配,将有助于提升数据分析和报告的质量。
Lwcah(全网各平台账号同名)
- 粉丝: 1086
- 资源: 22
最新资源
- 俞敏洪:企业的文化基因需要一开始就注入.docx
- 政钧企业文化诊断学之 :企业家个人文化力不足.docx
- STM32串口下载软件(FLYMCU)
- 红枣疏花机(含工程图sw18可编辑+cad)全套技术开发资料100%好用.zip
- 基于web的网上演唱会票务管理系统.doc
- Python面向对象.xmind
- 中职学校《Windows Server网络操作系统》课程标准及教学指导(2024年版)
- 基于java的物流信息网的设计与实现论文.doc
- 中职学校《Java程序设计》课程标准及教学指导(2024年版)
- Python面向对象进阶.xmind
- 中职学校《Android Studio程序设计》课程标准及教学指导(2024年版)
- ReST-MCTS∗: LLM Self-Training via Process Reward Guided Tree Search
- 基于java的音乐交流平台论文.doc
- pptssssssss
- 中职学校《物联网网关Qt程序编写》课程标准及教学指导(2024年版)
- 基于web的银行业务管理系统.doc