Matlab进阶绘图第12期—局部放大图

这篇具有很好参考价值的文章主要介绍了Matlab进阶绘图第12期—局部放大图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近资源群里有好几个朋友问我该如何对一幅图上的局部区域进行放大展示,从而可以更好地描绘细节信息……

于是,便有了本期内容。

局部放大图的绘制方法有很多,但为了使用方便,本文直接利用BaseZoom工具(Kepeng Qiu. Matlab Central, 2022)进行局部放大图的绘制,先来看一下成品效果:

Matlab进阶绘图第12期—局部放大图

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式。


1. 初始数据图绘制

此部分主要是绘制初始数据图

%% 数据准备% 导入数据load data xfit yfit xdata_m ydata_m ydata_s xVdata yVdata xmodel ymodel ...    ymodelL ymodelU c cint%% 颜色定义% TheColor函数获取方式:% 公众号后台回复:TCcolor_hFit = TheColor('xkcd',346);color_hModel = TheColor('xkcd',545);color_hData = TheColor('xkcd',301);color_hCI1 = TheColor('xkcd',304);color_hCI2 = TheColor('xkcd',304);color_hE = TheColor('xkcd',587);%% 图片尺寸设置(单位:厘米)figureUnits = 'centimeters';figureWidth = 15;figureHeight = 12;%% 窗口设置figureHandle = figure;set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]); % define the new figure dimensionshold on%% 绘制hFit = line(xfit, yfit);hData = line(xVdata, yVdata);hModel = line(xmodel, ymodel);hCI(1) = line(xmodel, ymodelL);hCI(2) = line(xmodel, ymodelU);hE = errorbar(xdata_m, ydata_m, ydata_s);% 添加labelhTitle = title('My Publication-Quality Graphics');hXLabel = xlabel('Length (m)');hYLabel = ylabel('Mass (kg)');% 添加文字注释hText = text(10, 800, ...    sprintf('{\\itC = %0.1g \\pm %0.1g (CI)}', c, cint(2)-c));%% 细节优化% 赋色set(hFit, 'Color', color_hFit)set(hModel, 'Color', color_hModel)set(hCI(1), 'Color', color_hCI1)set(hCI(2), 'Color', color_hCI2)set(hData, 'MarkerEdgeColor', 'none', 'MarkerFaceColor', color_hData)set(hE, 'Color', color_hE, 'MarkerEdgeColor', [.2 .2 .2], 'MarkerFaceColor' , color_hE)% 设置线属性set(hFit, 'LineWidth', 1.5)set(hModel, 'LineStyle', '--', 'LineWidth', 1.5)set(hCI(1), 'LineStyle', '-.','LineWidth', 1.5)set(hCI(2), 'LineStyle', '-.','LineWidth', 1.5)set(hData, 'LineStyle', 'none', 'Marker', '.','Marker', 'o', 'MarkerSize', 5)set(hE, 'LineStyle', 'none', 'Marker', '.','LineWidth', 1.5, 'Marker', 'o', 'MarkerSize', 6)% 设置坐标轴属性set(gca, 'Box', 'off',...          'TickDir', 'out', 'TickLength', [.01 .01], ...         'XMinorTick', 'on', 'YMinorTick', 'on',...          'XGrid', 'off', 'YGrid', 'off', ...         'XColor', [.3 .3 .3], 'YColor', [.3 .3 .3],...         'YTick', 0:500:2500, ...         'LineWidth', 1)% 添加上、右框线hold onXL = get(gca,'xlim'); XR = XL(2);YL = get(gca,'ylim'); YT = YL(2);xc = get(gca,'XColor');yc = get(gca,'YColor');plot(XL,YT*ones(size(XL)),'color', xc,'LineWidth',1)plot(XR*ones(size(YL)),YL,'color', yc,'LineWidth',1)% legendhLegend = legend([hE, hFit, hData, hModel, hCI(1)], ...    'Data ({\it\mu} \pm {\it\sigma})', 'Fit (C{\itx}^3)', ...    'Validation Data', 'Model (C{\itx}^3)', '95% CI', ...    'Location', 'SouthEast');% 设置字体字号set(gca, 'FontName', 'Helvetica')set([hTitle, hXLabel, hYLabel, hText], 'FontName', 'AvantGarde')set([hLegend, gca], 'FontSize', 8)set([hXLabel, hYLabel, hText], 'FontSize', 10)set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])

Matlab进阶绘图第12期—局部放大图

2. 局部放大图绘制

初始数据图绘制完成后,调用BaseZoom工具

%% 添加局部放大zp = BaseZoom();zp.plot;

通过鼠标左键框选作图区域

Matlab进阶绘图第12期—局部放大图

鼠标右键确定后,通过鼠标左键框选需要放大的区域

Matlab进阶绘图第12期—局部放大图

鼠标右键确定后,完成局部放大图的绘制。

Matlab进阶绘图第12期—局部放大图

以上。文章来源地址https://www.toymoban.com/news/detail-458344.html

到了这里,关于Matlab进阶绘图第12期—局部放大图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab进阶绘图第38期—蝴蝶图

    蝴蝶图 也称旋风图 ,是一种特殊的柱状图。 蝴蝶图一般 由左右两个水平柱状图组合而成,其形如蝴蝶展翅,可以很直观地展示两种数据直接的差异 。 本文使用自制的Butterfly小工具进行蝴蝶图的绘制,先来看一下成品效果: 特别提示:本期内容『数据+代码』已上传资源群

    2024年01月18日
    浏览(77)
  • Matlab进阶绘图第30期—冲击图

    冲击图是一种特殊的堆叠柱状图 。 与堆叠柱状图相比, 冲击图添加了相邻柱子中相同组分之间的连线,可以更加清晰地表达各组分占比情况 。 由于Matlab中未收录冲击图的绘制函数,因此需要大家自行解决。 本文使用自制的Fbarstacked小工具进行冲击图的绘制,先来看一下成

    2024年02月08日
    浏览(49)
  • Matlab进阶绘图第19期—三角气泡热图

    三角气泡热图,顾名思义,就是 仅保留气泡热图数据矩阵的上三角或下三角部分 。 三角气泡热图简单明了, 通过不同颜色、不同大小的圆形表示数据的大小,可以更加直观地对矩阵数据进行可视化表达 。 本文使用自制的tribubbleheatmap小工具进行三角气泡热图的绘制,先来看

    2024年02月11日
    浏览(49)
  • Matlab进阶绘图第39期—分组蝴蝶图

    分组蝴蝶图是蝴蝶图的一种变形 。 分组蝴蝶图一般 由左右两个水平分组柱状图组合而成,可以很直观地展示两种数据各组分之间的差异 。 本文使用自制的Butterfly小工具进行蝴蝶图的绘制,先来看一下成品效果: 特别提示:本期内容『数据+代码』已上传资源群中,加群的朋

    2024年01月23日
    浏览(52)
  • Matlab进阶绘图第23期—密度散点图

    密度散点图 本质上是一种 特征渲染的散点图 ,其 颜色表示某一点所在区域的密度信息 。 除了作图,密度散点图绘制的关键还在于密度的计算。 当然, 不管是作图还是密度的计算,这些在《Matlab论文插图绘制模板》和《Matlab点云处理及可视化》往期文章中都有介绍 。 为了

    2024年02月16日
    浏览(51)
  • Matlab进阶绘图第16期—三维填充折线图

    三维填充折线图是在三维折线图的基础上,对其与XOY平面之间的部分进行颜色填充,从而 能够更好地刻画细节变化 。 由于Matlab中未收录三维填充折线图的绘制函数,因此需要大家自行设法解决 。 本文使用自制的FilledPlot3小工具进行三维填充折线图的绘制,先来看一下成品效

    2024年02月08日
    浏览(93)
  • Matlab进阶绘图第14期—相关性方块热图

    相关性方块热图 是一种特殊的方块热图。 与一般的方块热图相比, 其数值位于[-1 1]区间,其颜色用于表示正负,而其方块的大小用于表示数值绝对值的大小 ,可以十分直观地对两个变量的相关性进行分析。 由于Matlab中未收录相关性方块热图的绘制函数,因此需要大家自行

    2023年04月12日
    浏览(39)
  • Python 绘制局部放大图

    转载自这篇文章:博客 请务必先看此文章: 【Python】Matplotlib局部放大图画法这篇文章已经非常详细,但是没有数据,所以自己生成了一些数据,以及对部分代码进行了函数封装,以便于二次使用。import matplotlib.pyplot as pltfrom matplotlib.patches importConnectionPatchimport numpy as npdef z

    2024年02月12日
    浏览(30)
  • 【vue3】js + css 实现 视频框选放大:局部细节放大、放大镜效果

    实现鼠标框选区域放大显示。 需求1:放大 按住鼠标左键不放 ——》向右侧拖动,框选出需要放大的区域后 ——》松开鼠标 ——》框选区域放大显示 需求2:还原 按住鼠标左键不放 ——》向左侧拖动,框选出随意大小的区域后 ——》松开鼠标 ——》视图显示大小还原 需求

    2024年02月03日
    浏览(56)
  • 【AI绘图】最近非常火的AI绘图(附操作方法)

    现在网上比较流行AI绘图,不管你是绘画高手还是小白,只要输入绘制内容或者基础图像,就可以绘制富有艺术感的画作! 下面介绍一个AI绘图的绘制步骤。 1.首先登录网址,通过手机号注册账号,然后选择这个AI艺术图创作。  2.每日登录有10次创作机会。接着,选择画师,

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包