MATLAB | 如何在MATLAB中使用python全部colormap配色
写了个函数,可以在MATLAB 中使用 python 全部 colormap 配色:
(以下仅展示部分)
工具函数及说明
注意文件夹内一定要有:
- PYCM.m
- PYCMset.mat
两个文件 ,PYCM.m 为主函数,PYCMset.mat 为包含颜色数据及名称的 mat 文件,以下展示当前版本 PYCM.m 完整代码(完整m文件及颜色数据文件下载方式请查看文末):
function CM=PYCM
% @author: slandarer
% @公众号: slandarer随笔
% @知 乎: hikari
% =====================================================
% 基本使用:
% PYCM().pink(n)
% PYCM().pink() % 未指定数目时默认返回100个RGB值
% PYCM().pink(50) % 获取名为pink的色带的50个数值
% PYCM().viridis(50) % 获取名为viridis的色带的50个数值
% 配合colormap函数使用:
% colormap(PYCM().pink())
% -----------------------------------------------------
% 获取全部colormaps名称:
% PYCM().colormaps()
% -----------------------------------------------------
% 色卡展示:
% PYCM().show() % 创建6个窗口展示全部色卡
% PYCM().show(1) % 展示第一个色卡pyData=load('PYCMset.mat');% 获取n个插值颜色基础函数--------------------------------------------------function map=interpColor(map,n)if isempty(n)n=100;elseif isempty(n{1})||round(n{1}(1))==0||~isnumeric(n{1})n=100;elsen=abs(round(n{1}(1)));endendmap=map./255;Xi=1:size(map,1);Xq=linspace(1,size(map,1),n);map=[interp1(Xi,map(:,1),Xq,'linear')',...interp1(Xi,map(:,2),Xq,'linear')',...interp1(Xi,map(:,3),Xq,'linear')'];end
for i=1:length(pyData.CLASS.Total)CM.(pyData.CLASS.Total{i})=@(varargin)interpColor(pyData.CM.(pyData.CLASS.Total{i}),varargin);
end% 展示全部颜色种类函数-----------------------------------------------------function showName(pyData)fprintf('%s\n',char(ones(1,60).*61))for m=1:length(pyData.CLASS.ListFullName)fprintf('【%s】:\n\n',pyData.CLASS.ListFullName{m})k6=ceil(length(pyData.CLASS.(pyData.CLASS.List{m}))/6);for n=1:k6fprintf('%s ',pyData.CLASS.(pyData.CLASS.List{m}){(n-1)*6+1:min(n*6,end)})fprintf('\n')endfprintf('%s\n',char(ones(1,60).*45))endend
CM.colormaps=@()showName(pyData);% 色卡生成函数-------------------------------------------------------------function showCM(pyData,n)if isempty(n)||round(n{1}(1))>6||round(n{1}(1))<1||~isnumeric(n{1})n=1:6;elsen=round(n{1}(1));endfor k=nshowCMinFunc(pyData,k);endfunction showCMinFunc(pyData,n)fig=figure();ax=axes('Parent',fig);hold on;ax.XLim=[0,800];ax.XTick=[];ax.XColor='none';ax.YLim=[0,600];ax.YTick=[];ax.YColor='none';ax.FontName='cambria';ax.FontSize=15;ax.Title.String=pyData.CLASS.ListFullName{n};tNameList=pyData.CLASS.(pyData.CLASS.List{n});[XMesh,YMesh]=meshgrid(161:793,linspace(0,1,20));ZMesh=zeros(size(XMesh));for kk=1:length(tNameList)tCMesh=reshape(pyData.CM.(tNameList{kk})./255,[1,633,3]);tCMesh=repmat(tCMesh,[20,1]);surf(XMesh,(600-10-32*kk).*ones(20,633)+YMesh.*28,ZMesh,'CData',tCMesh,'EdgeColor','interp');tName=tNameList{kk};if any(tName=='_')downLinePos=find(tName=='_');tName=[tName(1:downLinePos-1),'\',tName(downLinePos:end)];endtext(158,(600-10-32*kk+16),tName,'FontName','cambria','HorizontalAlignment','right','FontSize',14)endendend
CM.show=@(varargin)showCM(pyData,varargin);
end
基本使用
我们可以通过
PYCM().name(n)
的形式基础使用函数,这样会得到一个包含 n 个颜色的 nx3 大小的矩阵,name是函数支持的颜色名称,支持的有很多,会在后面部分进行列举,先举个使用 pink 颜色渲染的实例:
[X,Y,Z]=peaks(25);
surf(X,Y,Z)colormap(PYCM().pink())
colorbar
我们会发现我们实际用的时候并没有输入n,实际上这个n缺省时,会被自动设置为100,如果我们将使用colormap 那行改为:
colormap(PYCM().viridis(5))
则有效果如下:
颜色列表的文字输出
颜色种类有很多,但是我们咋知道哪些名称是可以选择的呢,当编写如下代码时:
PYCM().colormaps()
将会在命令行输出全部可选颜色列表(仅展示部分输出):
颜色列表的图像展示
当然,光看名字很难猜出颜色都是啥样的,因此我还设置了一个 show 函数,使用方式如下:
PYCM().show(n)
n可以取1~6的数值,当取不同数值时会新建窗口展示不同类型的颜色列表。当然如果缺省参数:
PYCM().show()
则会展示所有色卡:
完整数据包及代码:
完整代码及工具包在这里
【链接】:https://pan.baidu.com/s/11ymQMtaAsrlH_itZazG8TA?pwd=1v2m
【提取码】:1v2m
完整代码及工具包在这里
另:解压后,将文件夹位置添加到设置路径,则其他位置的程序也可以使用该工具函数:
MATLAB | 如何在MATLAB中使用python全部colormap配色相关推荐
- 如何在Windows中安装Python?
如何在Windows中安装Python? 1. Python的安装 官网下载:https://www.python.org/downloads/windows/ 点开上面的链接,会发现有很多版本. 首 ...
- excel调用python编程-如何在excel中调用python脚本
如何在excel中调用python脚本 发布时间:2020-07-03 14:15:28 来源:亿速云 阅读:155 如何在excel中调用python脚本?针对这个问题,这篇文章详细介绍了相对应的分 ...
- fortran语言和python_如何在Fortran中调用Python
Python是机器学习领域不断增长的通用语言.拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch.气候模式通常是使用Fortran实现的.那么我们应该将基于Py ...
- unbantu上python安装步骤_如何在Ubuntu中安装Python 3.6?
Python是增长最快的主要通用编程语言.原因有很多,比如它的可读性和灵活性,易于学习和使用,可靠和高效. 有两个主要的Python版本被使用- 2和3 (Python的现在和未来);前者将看不到新的 ...
- 如何在latex中使用python及pythontex功能简介
如何在latex中使用python及pythontex功能简介 这是我在latexstudio写的文章. 请直接看: [如何在latex中使用python及pythontex功能简介]
- 如何在VSCode中添加Python解释器并安装Python库
如何在VSCode中添加Python解释器并安装Python库 作者介绍 一. 安装VScode编辑器 二. 安装Python解释器 三. 在VScode中添加Python解释器 四. 创建项目并在V ...
- 如何在Vscode中安装Python库
如何在vscode中安装python库 1.已经在vscode中装了python并配置好python运行环境. 检查是否正确配置好运行环境,按Windows+R组合键在运行窗口输入cmd,打开命令提示 ...
- 如何在cmd中切换python版本总结
如何在cmd中切换Python版本总结 前言 尝试一:更改系统变量 尝试二.更改解释器名称 前言 由于学习nao机器人编程参加比赛,因此安装了python2.7版本.而之前安装的都为python3.9 ...
- 如何在JavaScript中检测用户的首选配色方案
by Oskar Hane 由Oskar Hane 如何在JavaScript中检测用户的首选配色方案 (How to detect a user's preferred color scheme i ...
最新文章
- ST-Link VCP Ctrl驱动安装失败解决(win7 64bits)
- 【数据结构与算法】之深入解析“TinyURL加密与解密”的求解思路与算法示例
- 2 Effect Hook
- 谷歌浏览器的驱动下载安装与配置-0223
- Spring Cloud 微服务实战系列-Eureka注册中心(一)
- 【linux基础】16、软件包管理
- linux锐捷认证成功无法上网,锐捷认证成功但是却无法上网怎么办
- 联想微型计算机设置键盘开机,联想台式机怎么样设置键盘开机
- opencv-之求直线的斜率
- Git出现 Your local changes to the following files would be overwritten by merge: con
- Excel的单元格设置下拉选项并填充颜色
- 外网远程访问管家婆ERP进销存
- OSChina 周四乱弹 ——因为女同事衣服穿的薄 所以老板发现我没上班?
- Excel在统计分析中的应用—第十二章—回归分析与预测-应用LINEST函数进行回归分析
- 2002年世界杯中国队男足的3场比赛(中国vs哥斯达黎加、巴西和土耳其)比分
- osgEarth如何加载离线谷歌卫星地图瓦片的源码教程
- python画函数图像网格_用python 画一个网格
- H5和原生APP之间的区别
- >> 读书记录_2022
- C语言标准库--官网
热门文章
- oracle中间人投毒漏洞,Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
- Web地图服务规范(WMS、WMTS、TMS)简析
- 激活具有 eSIM 功能的消费类物联网设备的 4 种方法
- 穿越晋商百年-体验非遗文化
- 21. 程序员生存定律-选公司前要干的事:分类
- 人工智能在各个领域里的应用场景
- 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈
- 【English】百词斩阅读记事
- PHP redis 全部命令
- 亲测有效,解决MAC无法联网的问题