放大绘图轴自定义区域MATLAB 代码

Posted 这是一个很随便的名字

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了放大绘图轴自定义区域MATLAB 代码相关的知识,希望对你有一定的参考价值。

用于放大绘图轴自定义区域的 MATLAB 代码。

主要特点

  • 易于使用的 API
  • 独立模块参数设置(轴、矩形、线)
  • 可定制的连接线方向

如何使用

简单演示

% Magnification of the customized regions of the plot's axis.
clc
clear
close all

% data
x = linspace(-0.1*pi,2*pi, 30);
y = cell(1, 3);
y{1, 1} = 0.4*sinc(x)+0.8;
y{1, 2} = tanh(x);
y{1, 3} = exp(-sinc(x));

%% main axes
figure
color_ = [0, 114, 189; 126, 47, 142; 162, 20, 47]/255;
axes1 = axes('Units', 'normalized');
hold(axes1, 'on');
box(axes1,'on');
set(axes1, 'LineWidth', 1.2, 'TickDir', 'in');
for i = 1:3
    plot(x, y{1, i}, 'Parent', axes1, 'Color', color_(i, :), 'LineWidth', 3)
end
legend(axes1, 'line-1', 'line-2', 'line-3')

%% new axes
% parameters of axes
parameters = struct('axesPosition', [0.6, 0.1, 0.2, 0.4],...
                    'zoomZone', [1.5, 2.5; 0.6, 1.3],...
                    'lineDirection', [1, 2; 4, 3]);
                
%% plot
zp = BaseZoom();
zp.plot(parameters)

 

关于参数

轴位置

将axisPosition 指定为数据单位中形式为[xywh] 的四元素向量。x 和 y 元素确定位置,w 和 h 元素确定大小。该函数绘制到当前坐标区而不清除坐标区中的现有内容。

变焦区

zoomZone 是一个 2×2 矩阵,表示矩形框的坐标。第一行的x_start 和x_end 是缩放区域的x 坐标起点和终点,第二行的y_start 和y_end 是缩放区域的y 坐标起点和终点。

线路方向

缩放区域的矩形框通过连接线连接到子坐标系。矩形框和子坐标系的四个角分别为1、2、3、4。对应的四个角分别为右上、左上、左下、右下。下图显示了几种常见情况的方向设置:

 

以第一组为例:矩形框的右下角(4)连接子坐标系的左下角(3),矩形框的右上角(1)连接子坐标系的左下角(3)次坐标系左上角(2),所以方向参数为[1, 2; 4, 3]。

特性

可以在文件--“BaseZoom.m”中编辑轴、矩形、线的参数

 

    properties
        %
        axes1
        axes2
        rectangle
        XLimNew
        YLimNew
        mappingParams
        
        % parameters of inserted axes
        axes2Box = 'on'
        axes2BoxColor = 'none'
        axes2BoxLineWidth = 1.2
        axes2TickDirection = 'in'
        
        % parameters of inserted rectangle
        rectangleColor = 'k'
        rectangleFaceColor = 'none'
        rectangleFaceAlpha = 1
        rectangleLineStyle = '-'
        rectangleLineWidth = 0.8
        
        % parameters of inserted line
        boxLineStyle = ':'
        boxLineColor = 'k'
        boxLineWidth = 1
        boxLineMarker = 'none'
        boxLineMarkerSize = 6
    end

 例如,将矩形框更改为宽度为 2 的红色虚线:

        % parameters of inserted rectangle
        rectangleColor = 'r'
        rectangleFaceColor = 'none'
        rectangleFaceAlpha = 1
        rectangleLineStyle = ':'
        rectangleLineWidth = 2

例如,更改子坐标系的框和缩放方向:

        % parameters of inserted axes
        axes2Box = 'off'
        axes2BoxColor = 'none'
        axes2BoxLineWidth = 1.2
        axes2TickDirection = 'out'

 

 例如,将连接线更改为宽度为 2 的红色虚线:

        % parameters of inserted line
        boxLineStyle = ':'
        boxLineColor = 'r'
        boxLineWidth = 2
        boxLineMarker = 'none'
        boxLineMarkerSize = 6

 

 获取完整代码:https://ai.52learn.online/code/111

 

以上是关于放大绘图轴自定义区域MATLAB 代码的主要内容,如果未能解决你的问题,请参考以下文章

h5 网页放大缩小会调用啥函数

实例详解:MFC坐标轴实现

MATLAB | 一行代码让你的绘图背景变得逼格满满

matlab里面mesh绘图,如何改变指定区域的颜色

在 MATLAB 绘图中为垂直条形区域着色

高亮部分matlab绘图