MATLAB绘制带置信区间的折线散点图(科研绘图模板)

文章目录

概要

本文分享MATLAB科研绘图:带置信区间填充的折线‑散点组合图

同时绘制原始散点、拟合曲线、置信区间半透明填充区域,适配期刊论文格式。

整体架构流程

  1. 数据准备:读取data.mat数据集,包含x、y1、y2原始散点;y11、y22拟合曲线;置信边界坐标。
  2. 颜色定义:归一化RGB配色,两组绘图颜色。
  3. 画布尺寸设定:厘米单位,16×9学术图片比例。
  4. 绘图:fill绘制置信区间填充,line绘制拟合线,scatter绘制原始散点。
  5. 图表美化:坐标轴、网格、图例、字体,手动补全右上边框(box off经典补框技巧)。
  6. 输出300DPI高清图片。

技术名词解释

  • fill:面填充函数,用于绘制置信区间阴影区域
  • scatter:散点绘制,filled代表实心标记点
  • line:绘制拟合曲线
  • Position:画布、坐标轴位置属性,厘米单位适配论文出图
  • PaperPosition:print导出图片控制纸张尺寸,保证导出图和显示尺寸一致

技术细节

  1. 置信区间:fill([x上边界,x倒序下边界],[y上边界,y倒序下边界],颜色)构造闭合填充区域。
  2. 补右上边框:原生Box off会丢失上、右框线,新建透明axes绘制两条边框,MATLAB科研绘图高频技巧。
  3. 字体统一Arial,适配SCI期刊;Y轴开启网格,X轴关闭网格。
  4. 输出分辨率-r300,满足期刊图片分辨率要求。
  5. RGB颜色直接硬编码,不再依赖第三方TheColor工具包。

完整MATLAB代码

matlab 复制代码
clear,clc,close all
%% 数据准备
% 读取data.mat,内部需要变量:
% x,y1,y2 原始散点;y11,y22拟合曲线
% xconfu1,xconfd1,yconfu1,yconfd1 第一组置信区间坐标
% xconfu2,xconfd2,yconfu2,yconfd2 第二组置信区间坐标
load data.mat

%% 颜色定义(原TheColor提取,无需第三方函数)
C1 = [0.2627, 0.4196, 0.6784];
C2 = [0.9882, 0.7529, 0.0235];

%% 图片尺寸设置(单位:厘米)
figureUnits = 'centimeters';
figureWidth = 16;
figureHeight = 9;

%% 窗口设置
figureHandle = figure;
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);
hold on

%% 带置信区间的折线散点图绘制
% 置信区间填充
P1 = fill([xconfu1,xconfd1],[yconfu1,yconfd1],C1);
P2 = fill([xconfu2,xconfd2],[yconfu2,yconfd2],C2);
% 拟合曲线
L1 = line(x,y11);
L2 = line(x,y22);
% 原始实心散点
S1 = scatter(x,y1,40,'filled');
S2 = scatter(x,y2,40,'filled');

% 标题、坐标轴标签
hTitle = title('Line‑Scatter Chart with Confidence Interval');
hXLabel = xlabel('GlobBiomass AGB');
hYLabel = ylabel('AGB');

%% 细节优化
% 置信填充区域样式:半透明灰色填充,关闭边缘线条
set(P1,'FaceColor',[0.5 0.5 0.5],'FaceAlpha',0.2,'EdgeColor','none')
set(P2,'FaceColor',[0.5 0.5 0.5],'FaceAlpha',0.2,'EdgeColor','none')
% 拟合曲线属性
set(L1,'LineStyle','-','LineWidth',3, 'Color',C1)
set(L2,'LineStyle','-','LineWidth',3, 'Color',C2)
% 散点属性
set(S1,'MarkerFaceColor',C1,'MarkerEdgeColor','none')
set(S2,'MarkerFaceColor',C2,'MarkerEdgeColor','none')

% 坐标区调整
set(gca, 'Box', 'off', ...                                % 关闭原生边框
'Layer','top',...                                % 刻度置于顶层
'LineWidth',1,...                                % 坐标轴线宽
'XGrid', 'off', 'YGrid', 'on', ...               % Y轴网格开启
'TickDir', 'out', 'TickLength', [0.01 0.01], ... % 刻度向外
'XMinorTick', 'off', 'YMinorTick', 'off', ...    % 关闭小刻度
'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])     % 坐标轴颜色

% 坐标轴范围
set(gca, 'XLim',[-0.01 1.01],...
'YLim',[-65 30])

% 图例设置
hLegend = legend([S1,S2,L1,L2], ...
'Data1','Data2','Fit1','Fit2', ...
'Location', 'southeast',...
'NumColumns',2);

% 字体字号(期刊常用Arial字体)
set(gca, 'FontName', 'Arial', 'FontSize', 10)
set([hLegend,hXLabel,hYLabel], 'FontSize', 11, 'FontName', 'Arial')
set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')

% 画布背景白色
set(gcf,'Color',[1 1 1])

%% 技巧:手动添加上、右框线(box=off时补全边框)
xc = get(gca,'XColor');
yc = get(gca,'YColor');
unit = get(gca,'units');
ax = axes( 'Units', unit,...
'Position',get(gca,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor',xc,...
'YColor',yc);
set(ax, 'linewidth',1,...
'XTick', [],...
'YTick', []);

%% 图片输出,300DPI高清png
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figW figH]);
fileout = '带置信区间的折线散点图';
print(figureHandle,[fileout,'.png'],'-r300','-dpng');
相关推荐
2601_966949651 小时前
从轮询到策略消费:量化系统如何高效处理五档盘口数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
我命由我123452 小时前
人脸识别 - 去重时间窗口
java·开发语言·python·学习·java-ee·学习方法·python3.11
落魄大学生之流水线上谋生计2 小时前
Java并发核心机制详解:线程池、CAS、AQS、锁升级
java·开发语言·数据库
hahaha60162 小时前
HLS高层次综合设计技巧--数组
开发语言·嵌入式硬件·算法·fpga开发
佳児素花痴╮2 小时前
Qt速通2
开发语言·qt
“AI国潮设计-小江”3 小时前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁英歌舞猫IP & 创意甜品设计(附ComfyUI工作流与商业授权说明)
开发语言·人工智能·python·prompt·aigc
529宝宝起名网3 小时前
用 Python 分析汉字字源与起名用字的关联规律:从六书结构到文化寓意的起名偏好洞察
开发语言·python
linx2953 小时前
单元九 · 零基础路线图-第 7–9 周·类与 RAII
c语言·开发语言·数据结构·c++·嵌入式硬件·算法
白色的北极熊4 小时前
c语言 输出菱形字符串
c语言·开发语言
学习智者4 小时前
《玄》IDE v3.6.3重磅发布:全功能修复与性能飞跃
开发语言·c++·ide·算法·中文语言 玄