freezeColors / unfreezeColors
编者按:这个文件被选为MATLAB中央选择的
freezeColors / unfreezeColors
freezeColors允许多个colormaps每图使用,甚至在一个轴。
历史
2005年freezeColors写入启用多个colormaps在一个图中,MATLAB做不到的事情。这是一个文件交换的选择在2009年。
2014年,MATLAB每个轴有自己的colormap启用。然而,freezeColors仍有一批追随者,因为它是更灵活和多个colormaps启用在一个轴。
MATLAB的图形是不断发展的,随着时间的推移freezeColors停止工作在某些情况下,如彩色的。现在,在2022年,它被带回了最新的和希望工作在每个人脑海中使用。如果不是,请让我知道,我会尝试修复它。
2022年的变化(v . 2.5)
*更强调多个colormaps在单个轴会* *新方法冻结彩色散射工作正常*正常工作当调用freezeColors (axesHandle) *包括替代colorbar: jicolorbar
使用
freezeColors适用于所有对象在当前轴freezeColors (axh)相同,但在轴axh工作对象。freezeColors (colorbar)创建一个当前colormap colorbar冷冻
例子
多个colormaps每图(遗留)
次要情节(2,1,1);显示亮度图像(峰);colormap热;freezeColors;freezeColors (colorbar)次要情节(2,1,2);显示亮度图像(峰);colormap hsv;freezeColors;freezeColors (colorbar) %等等……
注意,在这样一个简单的情况下,这可以使用matlab的per-axis colormaps(2014年之后):
次要情节(2,1,1);显示亮度图像(峰);colorbar;colormap (gca,“热”)次要情节(2,1,2);显示亮度图像(峰);colorbar;colormap (gca、hsv)
这是一个示例(来自测试/ test_main.m)也显示一个散点图面板使用多个colormaps在一个轴。
有趣的:多个colormaps轴
freezeColors可以做一些人们需要的东西,目前不可能在MATLAB:拥有不同colormaps使用多个对象在同一轴。这些例子是有些做作,但说明了可能性。
图冲浪(峰);colormap parula;freezeColors;freezeColors (jicolorbar);坚持冲浪(峰值+ 20);caxis (28 [14]);colormap灰色;freezeColors;freezeColors (colorbar);冲浪(峰值+ 40); caxis(caxis+20); colormap hot; freezeColors; freezeColors(jicolorbar('horiz')); axis auto; shading interp; caxis([14 28]); view([-27 14]); set(gca,'color',[.8 .8 .8])
例子冲浪和丝带
streamribbon和coneplot示例
看到测试/ test_main.m更多的例子。
它是如何工作的
一些MATLAB图形对象的颜色是由一个CData控制财产(冲浪、形象,散射,补丁,coneplot streamribbon,等等),通常转化为颜色使用当前colormap使用一个扩展的过程。因此如果colormap发生变化,出现变化。freezeColors
简单地将所有图形对象的缩放CData外观,直接RGB CData的意义是“冻结”当前colormap,因此后续更改colormap不会改变其外观。原始数据存储和可以恢复使用unfreezeColors
。
警告
在继续寻求改进,一些图形对象随时间发生变化,其中最重要的是彩色的,用来实现图像,因此很容易被冻结和其他对象。现在他们是封装在一个不透明的物体,我们需要找到一种新的方式冻结。现在简单地调用freezeColors (colorbar)
添加一个“冻结”colorbar轴。解冻当你改变colormaps将出现,但下一个叫freezeColors将恢复其冰冻的外观。它不会被冻结caxis,所以要注意。这是一个解决方案,但记住的电话freezeColors
你改变colormaps后一切都会好起来的。这个的好处还冻结contourf
情节,只要你的电话freezeColors (colorbar)
之后的情节。
同时,在一个拥有多个彩色轴是一项正在进行中的工作——jicolorbar和colorbar例子中使用了,需要一些注意设置caxis;一个更可持续的解决方案是一个新版本的jicolorbar更容易使多个(冻)彩色/轴……
引用作为
约翰球队(2023)。freezeColors / unfreezeColorsGitHub (https://github.com/jiversen/freezeColors/releases/tag/v2.5)。检索。
MATLAB版本兼容性
平台的兼容性
窗户 macOS Linux标签
确认
启发:newcolorbar:多个colormaps在同一坐标轴,cbarrow:尖的彩色,简单的机器人工具箱,简单的情节EEG脑网络Matlab,情节多个表面multisurf (x, y, z,颜色),解剖数据可视化toolfbox fMRI / ECoG,阴影伪颜色,imagescnan。m v2.1(2009年8月),COLORMAP和COLORBAR实用程序(2014年7月),多个Colormaps,STATMASK:覆盖图像与彩色统计面具,神经数据工具箱(NDTb),rgbmap彩色地图,LSWAVE-SignalProcessing,自动化的表型出现老鼠的行为,医学图像的读者和观众
测试
版本 | 发表 | 发布说明 | |
---|---|---|---|
2.5 | GitHub上看到这个版本发布说明:https://github.com/jiversen/freezeColors/releases/tag/v2.5 |
||
1.3.0.0 | 改变文档建议使用cbfreeze冻结彩色的 |
||
1.1.0.0 | 对问题冻结彩色的添加方法 |
||
1.0.0.0 | 改善:发布文档和演示。 |