Matlab绘制酷炫坐标区域的方法详解

目录
  • 使用方式
  • 其他炫酷的背景
  • 注意事项
  • 代码展示及mat文件获取

写了一个能让坐标区域变得很炫酷的修饰函数:

同时想到了一个很有意思的把函数存储进mat文件的方法,方法就不细讲了,大家自行点开.mat文件能够很轻松的理解原理(大概),

使用方式

首先说明一下函数咋用:假设编写了如下函数:

t=0:0.35:3*pi;
plot(t,sin(t),'Marker','d','LineWidth',2,'Color',[102,194,166]./255)
hold on
plot(t,cos(t./2),'Marker','o','LineWidth',2,'Color',[252,140,97]./255)
plot(t,t,'Marker','^','LineWidth',2,'Color',[140,161,204]./255)

在最后一行调用工具函数进行修饰,例如:

prettyAxes().ggray2()

或者:

prettyAxes(gca).ggray2()

修饰效果:

其他炫酷的背景

prettyAxes().dark()

prettyAxes().dark2()

prettyAxes().economist()

prettyAxes().gbase()

prettyAxes().gbase2()

prettyAxes().ggray()

prettyAxes().ggray2()

prettyAxes().wsj()

目前只有这些主题,之后可能会更新.mat文件,请使用如下命令获取可用主题列表:

prettyAxes().theme()

该命令会返回可用主题的函数名:

dark  dark2  economist  gbase  gbase2  ggray  ggray2  wsj  

注意事项

对于dark,dark2,economist,wsj这几种风格,其背景色并不是白色,一般情况下保存图片图窗的背景会是默认白色,即下图这样:

想要连figure窗口的背景颜色一起保存需要设置figure窗口的InvertHardcopy属性为'off',本函数已经设置好了这个属性,因此直接点击如下按钮保存即可:

另外当文件解压完成后后,将当前文件夹添加到搜索路径可以在任意文件夹使用该工具函数:

代码展示及mat文件获取

完整代码其实没啥东西,但还是展示一下吧,大部分信息都存储在.mat文件,完整代码及.mat文件请公众号后台回复关键词:PAX

完整代码展示:

function PAX=prettyAxes(ax)
% @author:slandarer
% ==================================
% 展示所有可选axes主题
% prettyAxes().theme()
% ----------------------------------
% prettyAxes(ax).dark()
% prettyAxes().ggray()

if nargin<1
    ax=[];
end

% 从mat文件中读取函数集合
axesTheme=load('axesTheme.mat');
axesTheme=axesTheme.theme;
% 结构体函数构造
for L=1:length(axesTheme.List)
    PAX.(axesTheme.List{L})=@()setAxesTheme(ax,axesTheme,axesTheme.List{L});
end
PAX.theme=@()showAxesTheme(axesTheme);
% =========================================================================
    % 坐标区域修饰基础函数
    function setAxesTheme(tAxes,axesTheme,Name)
        ax=tAxes;
        if isempty(ax)
            ax=gca;
        end
        % 读取函数信息
        sli=0;slii=0;
        tBaseStr=axesTheme.(Name);
        tBaseFunc=axesTheme.([Name,'_F']);
        eval([tBaseStr{:}])

        if ~isempty(tBaseFunc)
            % 设置鼠标移动回调
            set(ax.Parent,'WindowButtonMotionFcn',@bt_move_axes);
        end

        % 鼠标移动回调函数
        function bt_move_axes(~,~)
            eval([tBaseFunc{:}])
        end
    end
% -------------------------------------------------------------------------
    % 输出可用风格列表函数
    function showAxesTheme(axesTheme)
        for i=1:length(axesTheme.List)
            fprintf('%s  ',axesTheme.List{i})
        end
        fprintf('\r\n');
    end
end

到此这篇关于Matlab绘制酷炫坐标区域的方法详解的文章就介绍到这了,更多相关Matlab坐标区域内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于Matlab绘制洛伦兹吸引子相图

    目录 1.公式及Lorenz函数 2.混沌吸引子图像 3.混沌吸引子图像 4.封面图绘制 洛伦兹吸引子(Lorenz attractor)是由MIT大学的气象学家Edward Lorenz在1963年给出的,他给出第一个混沌现象——蝴蝶效应........废话不多说. 反正咱就是,好看且有用咱就写代码,第零部分给出公式.第一部分给出 混沌吸引子 图像,第二部分给出庞加莱截面法 分岔图 绘制. 1.公式及Lorenz函数 Lorenz微分方程组定义如下: 非常容易能写出该微分方程组函数: func

  • 详解Matlab实现动态表白图的绘制

    目录 1.幸福和快乐的哲学追问 2.提前祝女朋友节日快乐 2.1 展现 2.2 代码 1.幸福和快乐的哲学追问 在过去的500年间,我们见证了一连串令人惊叹的革命.地球在生态和历史上都已经整合成一个单一的领域.经济呈现指数增长,今日人类所享有的财富在过去只有可能出现在童话里.而科学和工业革命也带给我们超人类的力量,以及几乎可以说无限的能源.不仅社会秩序完全改变,政治.日常生活和人类心理也彻底改观. 只不过,我们真的更快乐了吗?人类在过去5世纪间积蓄的财富,是不是真的让我们找到了新的满足感?有了取

  • 利用Matlab制作环形相册效果详解

    目录 运行效果 完整步骤 1.图片准备及导入 2.为每张图片制作遮罩层 3.调整每张图大小 4.绘图及绘图参数详解 完整代码 运行效果 完整步骤 1.图片准备及导入 要制作一款相册足够的图片量是必不可少的,不然整个相册只有一张图来回重复多没意思呀,因此我们需要一个文件夹专门放图片,为了方便导入,这里全部都是jpg格式: 图片导入代码: path='.\album\';%文件夹路径 files=dir(fullfile(path,'*.jpg')); picNum=size(files,1); %

  • 基于Matlab实现离散系统分岔图的绘制

    目录 1.一维离散分岔图 2.二维离散分岔图 3.封面图绘制 1.一维离散分岔图 一维那非常简单哈,就循环着画呗,以下举两个简单的例子 : % x(n+1)=1-r*x(n)^2 % (r∈(0,2),x∈[-1,1])的分支混沌图. hold on f=@(x,r)1-r.*x.^2; r=0:.01:2; x=0; % x初值 for n=1:1000 x=f(x,r); if n>100 % 稳定后开始绘图 plot(r,x,'k.','MarkerSize',1); drawnow en

  • Matlab实现生成箭头坐标轴详解

    目录 demo1基础使用 demo2轴方向 demo3轴的其他属性 后言 属实是写工具函数写上瘾了,又写了一个一行代码将坐标轴变为箭头坐标轴的函数,而且可以对其进行随意拖动和缩放(拖动需要先点击那个像手掌的符号): 功能函数的引用非常简单,就只是在最后面加上一行: arrowAxes()或者arrowAxes(ax) 即可,以下给出几个例子: demo1 基础使用 就像上面说的一样,编写好代码后在最后面引用一下工具函数即可: % arrow axes demo1 % @author:slanda

  • Matlab绘制酷炫坐标区域的方法详解

    目录 使用方式 其他炫酷的背景 注意事项 代码展示及mat文件获取 写了一个能让坐标区域变得很炫酷的修饰函数: 同时想到了一个很有意思的把函数存储进mat文件的方法,方法就不细讲了,大家自行点开.mat文件能够很轻松的理解原理(大概), 使用方式 首先说明一下函数咋用:假设编写了如下函数: t=0:0.35:3*pi; plot(t,sin(t),'Marker','d','LineWidth',2,'Color',[102,194,166]./255) hold on plot(t,cos(t

  • Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体为例. 1 安装相关包 首先安装两个必备包: import pyrr # NumPy 的 3D 函数库 import svgwrite # svg图形处理库 2 定义 3D 图生成环境 接下来定义几个类设置好 3 维图基础环境: viewport :矩形图范围 camera:包括视图矩阵和投影矩阵

  • 基于Matlab绘制超绚丽的烟花的过程详解

    目录 1.使用效果 2.随机点生成 3.图像膨胀 4.特效「风」模拟 5.级坐标变换 6.图像模糊及再映射 7.图像上色 8.完整代码 1.使用效果 2.随机点生成 我们要构造一个黑色背景,对其添加高斯噪声,然后依据阈值删掉部分噪声,生成一张随机点图片: % 构造黑色背景并生成白色杂点 blackPic=uint8(zeros(800,800)); distPic=imnoise(blackPic,'gaussian',0, 0.11); distPic(distPic<254)=0; 3.图像

  • Matlab绘制散点密度图的教程详解

    目录 效果 1工具函数完整代码 2参数说明 3使用方式 3.1散点赋色 3.2等高线图 3.3带直方图的散点图 3.4带直方图的等高线图 4使用方式扩展–与ggplot修饰器联动 效果 原理也很简单,通过matlab自带的ksdensity获得网格每一点密度,通过密度拟合曲面,再计算每个数据点对应的概率,并将概率映射到颜色即可为了怕大家找不到函数这次工具函数放到最前面 1工具函数完整代码 function [CData,h,XMesh,YMesh,ZMesh,colorList]=density

  • Matlab绘制雨云图的方法详解

    目录 介绍 横向雨云图 纵向雨云图 介绍 写了俩代码模板,用来绘制横向云雨图与纵向云雨图,云雨图其实就是用把小提琴图拆开来的模板,想获取小提琴图绘制函数的可以看这里:基于Matlab绘制小提琴图的示例代码 后面的俩模板用的时候只需要换换数据,颜色及每一类名称即可,雨云图绘制效果如下: 横向雨云图 function rainCloudsTMPL1 % @author: slandarer % 在这里放入你的数据============================================

  • 利用Python绘制酷炫的3D地图

    目录 1.重庆市3D地图 2.中国3D地图一 3.中国3D地图二 4.中国3D地图三 5.地球展示 之前我们介绍了很多Python地图可视化的内容,本次主要介绍如何Python绘制3D地图,还是比较神奇的,下面让我们一起一饱眼福吧! 1.重庆市3D地图 from pyecharts import options as opts from pyecharts.charts import Map3D from pyecharts.globals import ChartType # 经纬度 exam

  • Matlab实现同步子图视角的方法详解

    目录 实例一:双子图仅同步视角 实例二:同步视角及坐标轴范围 实例三:更多子图 说来惭愧,在了解到这个更简单的方法之前,为了实现这个功能自己写了个工具函数,没发现有这么简单的实现方法,不过官网上的实现方法有点问题,我略微做出修改,这点会在之后被提到,以下给出实现子图同步旋转的三个例子: 实例一:双子图仅同步视角 实现这个功能依靠的是函数linkprop,看名字就是链接axes的某些属性,这里我们只需要链接两个坐标区域的'View'属性即可轻易实现同步视角: % demo1.m % @author

  • EasyX绘制透明背景图的方法详解

    目录 三元光栅操作 优化方案 三元光栅操作 根据在网上的搜索总结得到两种方案,最常见的绘制带有透明背景的图像的方案都是采用如下的源图像和掩码图像叠加来消去边缘部分: IMAGE img[2]; loadimage(&img[0], "sun1.png", 100, 100); // 掩码图像 loadimage(&img[1], "sun0.png", 100, 100); // 源图像 putimage(0, 0, &img[0], NOT

  • Android绘制旋转动画方法详解

    目录 1.准备工作 2.加速减速原理 3.初始化 4.开始 5.加速 6.减速 7.停止 8.项目源码 Layout部分 MainActivity部分 1.准备工作 首先需要有一个用于旋转的图片 需要考虑如何开始.结束.加速.减速 2.加速减速原理 本次的动画采用RotateAnimation,初始化需要的参数如下 public RotateAnimation(float fromDegrees,float toDegrees,int pivotXType,float pivotXValue,i

  • C#绘制实时曲线图的方法详解

    在终端机器上的曲线显示本打算用控件,可控件折腾好长时间也没弄顺,还是自己写的好使,记录下来后面再改进. //绘图部分的定义 Int32 Draw_Top;//绘画Y起点 Int32 Draw_Left;//绘画X起点 Int32 Draw_EdgeWidth;//X边缘宽度 Int32 Draw_EdgeHeight;//Y边缘高度 Int32 Draw_RangeWidth;//绘画范围宽度 Int32 Draw_RangeHeight;//绘画范围高度 Double[] XTDYData =

随机推荐