freezeColors / unfreezeColors

使用多个colormaps每图或轴!适用于多种类型的对象,不仅图像。

48.5 k下载

更新2022年7月25日

从GitHub

查看许可GitHub

编者按:这个文件被选为MATLAB中央选择的

freezeColors / unfreezeColors

视图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图

有趣的:多个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])

多个colormaps轴

例子冲浪和丝带

第二个例子

streamribbon和coneplot示例

第三个例子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)。检索

版本 发表 发布说明
2.5

GitHub上看到这个版本发布说明:https://github.com/jiversen/freezeColors/releases/tag/v2.5

1.3.0.0

改变文档建议使用cbfreeze冻结彩色的
修复保护caxis hggroups内的对象(如contourf)
更新以反映obsolescense成为可能。

1.1.0.0

对问题冻结彩色的添加方法

1.0.0.0

改善:发布文档和演示。
固定:尊重南颜色值(透明),保存caxis,检查画家模式。

问题在这个视图或报告GitHub插件,参观GitHub库
问题在这个视图或报告GitHub插件,参观GitHub库