Matlab科研绘图:自定义内置多款配色函数

在Matlab科研绘图中,自定义和使用内置的多款配色函数可以极大地增强图表的视觉效果和数据的可读性。本文将介绍配色函数,共计带来6套配色体系,而且后续可以根据需要修改,帮助大家自定义和使用配色函数。 

1.配色函数

可以根据个人喜好或科研需求自定义配色方案,例如可以定义一个名为diycolor的函数,该函数接受整数输入并返回相应的自定义颜色。在绘图时,可以通过调用这个函数来获取和使用自定义颜色。本文提供的配色函数具体代码如下:

function colors = iy_color(input, positions)
% IY_COLOR 生成自定义颜色映射.
%
%   COLORS = IY_COLOR(INPUT) 生成基于指定输入参数的自定义颜色映射。
%   INPUT 是一个整数,用于描述所需的颜色映射类型。
%   该函数返回生成的颜色映射作为一个颜色矩阵。
%
%   INPUT 参数的说明:
%     - 1: 综合颜色映射,包含多种颜色,从蓝色到深红色,再到灰色和深色。这个颜色映射提供了多样的颜色选择,可用于不同的应用。
%     - 2: 蓝色色系,从浅到深,共计20个颜色。
%     - 3: 绿色色系,从浅到深,共计20个颜色。
%     - 4: 红色色系,从浅到深,共计20个颜色。
%     - 5: 黄色色系,从浅到深,共计20个颜色。
%     - 6: 紫色色系,从浅到深,共计20个颜色。
%
%   COLORS = IY_COLOR(INPUT, POSITIONS) 可以使用 POSITIONS 参数来指定在生成的
%   颜色映射中选择哪些颜色。POSITIONS 应为整数或整数向量,表示所需颜色的位置。
%
%   示例:
%     - colormap = iy_color(1); % 生成综合颜色映射。
%     - colormap = iy_color(2, [1, 10, 15]); % 从浅蓝色到浅蓝色,选择指定位置的颜色。
%
%   请注意:在输入 INPUT 和 POSITIONS 时,请确保参数的有效性。
%
%   此外,如果想查看某个色系具体的颜色,您可以通过 color_all(INPUT),显示对应色系的颜色,它的输出是一张图片,给出了当前色系的所有颜色。
%
%   实例:
%     - color_all(1) 输出综合颜色colormap1 = [ % 50种颜色0 0 1; 0 0.5 0; 1 0 0; 0 0.75 0.75; 1 0 1; 1 0.5 0; 0.5 0 1; 0.5 0.5 0; 0 1 1; 0 1 0; 0.75 0.75 0; 0 0 0; 0.5 0.5 0.5; 0.6 0.2 0.2; 0.2 0.6 0.2; 0.2 0.2 0.6; 0.8 0.8 0; 0.8 0 0.8; 0 0.8 0.8; 0.5 0.5 0.2; 0.5 0.2 0.5; 0.2 0.5 0.5; 0.9 0.6 0.2; 0.9 0.2 0.6; 0.2 0.9 0.6; 0.7 0.7 0.7; 0.8 0.4 0.1; 0.4 0.8 0.1; 0.4 0.1 0.8; 0.1 0.4 0.8; 0.8 0.1 0.4; 0.1 0.8 0.4; 0.2 0.7 0.2; 0.7 0.2 0.2; 0.2 0.2 0.7; 0.4 0.5 0.8; 0.8 0.4 0.5; 0.5 0.8 0.4; 0.7 0.4 0.4; 0.4 0.4 0.7; 0.4 0.7 0.4; 0.8 0.6 0.2; 0.8 0.2 0.6; 0.2 0.8 0.6; 0.6 0.2 0.8; 0.2 0.6 0.8; 0.6 0.8 0.2; 0.4 0.1 0.2; 0.1 0.4 0.2; 0.2 0.4 0.1; ];colormap2 = [ % 蓝色色系,由浅到深色,共计20个0.9 0.9 1;0.85 0.85 1;0.8 0.8 1;0.75 0.75 1;0.7 0.7 1;0.65 0.65 1;0.6 0.6 1;0.55 0.55 1;0.5 0.5 1;0.45 0.45 1;0.4 0.4 1;0.35 0.35 1;0.3 0.3 1;0.25 0.25 1;0.2 0.2 1;0.15 0.15 1;0.1 0.1 1;0.05 0.05 1;0 0 1;0 0 0.9;
];colormap3 = [ % 绿色色系,由浅到深色,共计20个0.85 1 0.85; 0.8 1 0.8;  0.75 1 0.75; 0.7 1 0.7; 0.65 1 0.65; 0.6 1 0.6;  0.55 1 0.55; 0.5 1 0.5; 0.45 1 0.45; 0.4 1 0.4; 0.35 1 0.35; 0.3 1 0.3;  0.25 1 0.25; 0.2 1 0.2;0.15 1 0.15;0.1 1 0.1;  0.05 1 0.05;0 1 0; 0 0.95 0;  0 0.9 0; 
];colormap4 = [ % 红色色系,由浅到深色,共计20个1 0.85 0.85; 1 0.8 0.8;  1 0.75 0.75; 1 0.7 0.7;  1 0.65 0.65; 1 0.6 0.6;  1 0.55 0.55; 1 0.5 0.5; 1 0.45 0.45; 1 0.4 0.4;  1 0.35 0.35;  1 0.3 0.3;   1 0.25 0.25;  1 0.2 0.2;  1 0.15 0.15; 1 0.1 0.1;  1 0.05 0.05; 1 0 0;  0.95 0 0;  0.9 0 0;  
];
colormap5 = [ % 黄色色系,由浅到深色,共计20个1 1 0.85; 1 1 0.8; 1 1 0.75; 1 1 0.7;  1 1 0.65;  1 1 0.6;  1 1 0.55; 1 1 0.5;  1 1 0.45; 1 1 0.4;  1 1 0.35; 1 1 0.3;  1 1 0.25; 1 1 0.2;  1 1 0.15; 1 1 0.1;  1 1 0.05; 1 1 0;    0.95 0.95 0; 0.9 0.9 0;
];
colormap6 = [ % 紫色色系,由浅到深色,共计15个0.9 0.85 1; 0.85 0.75 1; 0.8 0.65 1; 0.75 0.55 1; 0.7 0.45 1; 0.65 0.35 1; 0.6 0.25 1;  0.55 0.15 1; 0.5 0.05 1; 0.45 0 0.9;0.4 0 0.8;  0.35 0 0.7; 0.3 0 0.6;  0.25 0 0.5;  0.2 0 0.4;  
];% 为每个 colormap 定义一个 cell 数组colormaps = {colormap1, colormap2, colormap3, colormap4, colormap5, colormap6};% 选择 colormapif isscalar(input) && input >= 1 && input <= numel(colormaps)selected_colormap = colormaps{input};elseerror('请输入有效的 colormap 索引。');end% 获取指定位置的颜色num_colors = size(selected_colormap, 1);if nargin < 2positions = 1:num_colors;endif isvector(positions) && all(positions >= 1 & positions <= num_colors)colors = selected_colormap(positions, :);elseerror('位置必须是介于 1 到 %d 之间的整数或整数矩阵。', num_colors);end
end

2.配色函数使用说明

iy_color 生成自定义颜色映射,COLORS = iy_color(INPUT) 生成基于指定输入参数的自定义颜色映射。INPUT 是一个整数,用于描述所需的颜色映射类型,该函数返回生成的颜色映射作为一个颜色矩阵。

INPUT 参数的说明:
– 1: 综合颜色映射,包含多种颜色,从蓝色到深红色,再到灰色和深色。这个颜色映射提供了多样的颜色选择,可用于不同的应用。
– 2: 蓝色色系,从浅到深,共计20个颜色。
– 3: 绿色色系,从浅到深,共计20个颜色。
– 4: 红色色系,从浅到深,共计20个颜色。
– 5: 黄色色系,从浅到深,共计20个颜色。
– 6: 紫色色系,从浅到深,共计20个颜色。

COLORS = iy_color(INPUT, POSITIONS) 可以使用 POSITIONS 参数来指定在生成的颜色映射中选择哪些颜色。POSITIONS 应为整数或整数向量,表示所需颜色的位置。

示例:
– colormap = iy_color(1); % 生成综合颜色映射。
– colormap = iy_color(2, [1, 10, 15]); % 从浅蓝色到浅蓝色,选择指定位置的颜色。

在输入 INPUT 和 POSITIONS 时,请确保参数的有效性。此外,如果想查看某个色系具体颜色,可以通过 color_all(INPUT),显示对应色系的颜色,它的输出是一张图片,给出了当前色系的所有颜色。可以通过help iy_color或者doc iy_color查看帮助文件。

3.颜色色系查看函数

本文还提供如下函数,以用于查看各色系具体的颜色值,它的输出是对应色系的所有颜色,以图片方式显示每个编号对应的颜色。

function color_all(colorIndex)
% 根据用户传递的colorIndex参数设置colormap
colormap = iy_color(colorIndex);% 获取 colormap 的列数
num_columns = size(colormap, 1);% 创建颜色代码
colorCodes = 1:num_columns;% 定义参数
colorBlockSize = 40;  % 每个颜色块的大小
colorsPerRow = 10;    % 每行包含的颜色数
colorSpacing = 20;    % 颜色之间的间隔
groupSpacing = 30;    % 每组颜色之间的间隔% 计算图像大小
imageWidth = (colorsPerRow * colorBlockSize) + ((colorsPerRow - 1) * colorSpacing);
imageHeight = (ceil(numel(colorCodes) / colorsPerRow) * colorBlockSize) + ...(ceil(numel(colorCodes) / colorsPerRow - 1) * groupSpacing);% 创建颜色列表图
figure;
set(gcf, 'Position', [100, 100, imageWidth, imageHeight]);
hold on;for i = 1:numel(colorCodes)% 计算当前颜色块的位置row = ceil(i / colorsPerRow);col = mod(i - 1, colorsPerRow) + 1;% 计算颜色块左下角的坐标x = (col - 1) * (colorBlockSize + colorSpacing);y = (row - 1) * (colorBlockSize + groupSpacing);% 获取当前颜色color = colormap(i,:);% 绘制颜色块rectangle('Position', [x, y, colorBlockSize, colorBlockSize], 'FaceColor', color);% 显示颜色代码text(x + colorBlockSize / 2, y - 10, num2str(colorCodes(i)), 'HorizontalAlignment', 'center');
endaxis off;
hold off;
end

使用方法:color_all(1)输出1号色系所有颜色,以此类推。具体输出的颜色色系展示如下:

 通过上述方法,可以在Matlab中灵活地自定义和使用多种配色方案,以满足科研绘图的需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/476607.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全的学习方向和路线是怎么样的?

最近有同学问我&#xff0c;网络安全的学习路线是怎么样的&#xff1f; 废话不多说&#xff0c;先上一张图镇楼&#xff0c;看看网络安全有哪些方向&#xff0c;它们之间有什么关系和区别&#xff0c;各自需要学习哪些东西。 在这个圈子技术门类中&#xff0c;工作岗位主要有以…

JAVA八股与代码实践----JDK代理和CGLIB代理的区别

当spring发现该代理的类实现了接口会使用JDK代理&#xff0c;如果该类没有实现接口&#xff0c;会使用CGLIB代理 如果在springboot中要强制使用CGLIB代理&#xff0c;需要加上 EnableAspectJAutoProxy(proxyTargetClass true) // 强制使用 CGLIB SpringBootApplication Ena…

环境背景文本到语音转换

目录 概述演示效果核心逻辑使用方式 概述 本文所涉及的所有资源的获取方式&#xff1a;https://www.aspiringcode.com/content?id100000000027&uid2f1061526e3a4548ab2e111ad079ea8c 论文标题&#xff1a; 本文提出了 VoiceLDM&#xff0c;这是一种旨在生成准确遵循两种…

mac安装Pytest、Allure、brew

安装环境 安装pytest 命令 pip3 install pytest 安装allure 命令&#xff1a;brew install allure 好吧 那我们在安装allure之前 我们先安装brew 安装brew 去了官网复制了命令 还是无法下载 如果你们也和我一样可以用这个方法哦 使用国内的代码仓库来执行brew的安装脚本…

【Linux】重定向,dup

目录 文件描述符分配规则 重定向 dup ​编辑 输出重定向 追加重定向 输入重定向。 重定向会影响后面的程序替换吗&#xff1f; 1号文件和2号文件 2号文件输出重定向 下标之间的重定向 文件描述符分配规则 重定向 把显示器文件关闭后&#xff0c;本来应该写给显示器…

Vue实训---1-创建Vue3项目

1.创建项目&#xff08;项目名为my-vue-project&#xff09; npm create vitelatest my-vue-project -- --template vue 运行命令npm -v&#xff0c;查看npm版本号&#xff0c;如果是npm 7或更高版本运行以上命令即可。如果是npm 6或更低版本&#xff0c;使用npm create vite…

智慧社区方案提升居民生活质量与管理效率的创新实践

内容概要 智慧社区方案的背景与发展趋势指向了一个日益重要的方向&#xff0c;随着城市化进程的加快&#xff0c;传统的社区管理模式逐渐显得力不从心。在这个时候&#xff0c;智慧社区应运而生&#xff0c;它通过将现代信息技术与社区管理深度结合&#xff0c;为提升居民生活…

【IDER、PyCharm】免费AI编程工具完整教程:ChatGPT Free - Support Key call AI GPT-o1 Claude3.5

文章目录 CodeMoss 简介CodeMoss 的模型集成如何安装和配置 CodeMossIDER 插件安装步骤 CodeMoss 的实战使用AI 问答功能代码优化与解释优化这段代码解释这段代码 文件上传与对话联网查询与 GPT 助手联网查询GPT 助手 提升开发效率的最佳实践结语更多文献 CodeMoss 简介 CodeM…

Java安全—JNDI注入RMI服务LDAP服务JDK绕过

前言 上次讲到JNDI注入这个玩意&#xff0c;但是没有细讲&#xff0c;现在就给它详细地讲个明白。 JNDI注入 那什么是JNDI注入呢&#xff0c;JNDI全称为 Java Naming and Directory Interface&#xff08;Java命名和目录接口&#xff09;&#xff0c;是一组应用程序接口&…

HarmonyOS笔记5:ArkUI框架的Navigation导航组件

ArkUI框架的Navigation导航组件 在移动应用中需要在不同的页面进行切换跳转。这种切换和跳转有两种方式&#xff1a;页面路由和Navigation组件实现导航。HarmonyOS推荐使用Navigation实现页面跳转。在本文中在HarmonyOS 5.0.0 Release SDK (API Version 12 Release)版本下&…

YOLOv11来了,使用YOLOv11训练自己的数据集和预测 (保姆级无代码操作版)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言性能表现数据集准备1.数据标注2.数据标签转换 YOLO模型训练教程1.模型安装2.YOLO11 模型训练3.YOLO11 预测结果 总结 前言 YOLOv11是由Ultralytics团队于2024年…

彻底理解消息队列的作用及如何选择

一.为什么要使用消息队列&#xff1f; 使用消息队列&#xff0c;其实是需要根据实际业务场景来的&#xff0c;一般都是实际开发中&#xff0c;遇到了某种技术挑战&#xff0c;如果不使用MQ的话&#xff0c;业务实现起来比较麻烦&#xff0c;但是通过MQ就可以更快捷高效的实现业…

在 Taro 中实现系统主题适配:亮/暗模式

目录 背景实现方案方案一&#xff1a;CSS 变量 prefers-color-scheme 媒体查询什么是 prefers-color-scheme&#xff1f;代码示例 方案二&#xff1a;通过 JavaScript 监听系统主题切换 背景 用Taro开发的微信小程序&#xff0c;需求是页面的UI主题想要跟随手机系统的主题适配…

飞凌嵌入式T113-i开发板RISC-V核的实时应用方案

随着市场对嵌入式设备的功能需求越来越高&#xff0c;集成了嵌入式处理器和实时处理器的主控方案日益增多&#xff0c;以便更好地平衡性能与效率——实时核负责高实时性任务&#xff0c;A核处理复杂任务&#xff0c;两核间需实时交换数据。然而在数据传输方面&#xff0c;传统串…

SpringCloud实用-OpenFeign 调用三方接口

文章目录 前言正文一、项目环境二、项目结构2.1 包的含义2.2 代理的场景 三、完整代码示例3.1 定义FeignClient3.2 定义拦截器3.3 配置类3.4 okhttp配置3.5 响应体3.5.1 天行基础响应3.5.2 热点新闻响应 3.6 代理类3.6.1 代理工厂3.6.2 代理客户端3.6.3 FeignClient的建造器 四…

《Object类》

目录 一、Object类 1.1 定义与地位 1.2 toString()方法 1.3 equals()方法 1.4 hashcode()方法 一、Object类 1.1 定义与地位 Object类是Java语言中的根类&#xff0c;所有的类&#xff08;除了Object类&#xff09;都直接或间接继承自Object。这就意味着在Java中&#xf…

单头蜗杆铣刀计算——记录一下

前面介绍过一期蜗杆的一些常用的加工方式《蜗杆的加工方式》&#xff0c;其中铣削加工也是非常常见的一种加工方式&#xff0c;下面来看看蜗杆铣刀的由来过程&#xff1a; 首先拿到蜗杆参数之后&#xff0c;需要将蜗杆准确的描述出来。渐开线蜗杆的参数与齿轮基本一致&#xf…

【Flask+Gunicorn+Nginx】部署目标检测模型API完整解决方案

【Ubuntu 22.04FlaskGunicornNginx】部署目标检测模型API完整解决方案 文章目录 1. 搭建深度学习环境1.1 下载Anaconda1.2 打包环境1.3 创建虚拟环境1.4 报错 2. 安装flask3. 安装gunicorn4. 安装Nginx4.1 安装前置依赖4.2 安装nginx4.3 常用命令 5. NginxGunicornFlask5.1 ng…

大数据实战——MapReduce案例实践

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 大数据实战——MapReduce案例实践 一&#xff0e;过程分析&#xff08;截图&#xff09;1. 确定Hadoop处于启动状态2. 在/usr/local/filecotent…

【从零开始的LeetCode-算法】3233. 统计不是特殊数字的数字数量

给你两个 正整数 l 和 r。对于任何数字 x&#xff0c;x 的所有正因数&#xff08;除了 x 本身&#xff09;被称为 x 的 真因数。 如果一个数字恰好仅有两个 真因数&#xff0c;则称该数字为 特殊数字。例如&#xff1a; 数字 4 是 特殊数字&#xff0c;因为它的真因数为 1 和…