在 MATLAB 中控制颜色条比例

2023-12-26

问题:如何在自定义 MATLAB 颜色条中指定颜色过渡?
具体来说,我想让黄色(见下文)覆盖颜色条的更多区域(可能是 [19.5–21.5] 或接近的区域)。

Using 这个答案 https://stackoverflow.com/questions/24488378/how-to-map-a-specific-value-into-rgb-color-code-in-matlab/24488819#24488819,我能够在 MATLAB 中创建自定义颜色条。我试图理解这个答案 https://stackoverflow.com/questions/45571444/matlab-scale-colorbar-of-image因为它可能是相关的。

我尝试过从这个答案 https://stackoverflow.com/questions/33650595/how-do-i-change-matlab-colorbar-scaling并审查了这个答案 https://stackoverflow.com/questions/45285114/matlab-colorbar-same-colors-scaled-values & this one https://stackoverflow.com/questions/53763218/colormap-three-colors并且无法实现我的目标。

很明显我错过了一些东西。

下面是完整的代表性示例

% MATLAB 2017a
% Data
X = [22.6 22.8 22.6 20.45 22.3 18.15 19.95 20.8].';
Y = [84 89 63 81 68 83 77 52].';
Z = [23.0 22.695 21.1450 21.5 22.09 20.5 22.075 20.915].';

% Create custom colormap  
% Reference: https://stackoverflow.com/questions/24488378/how-to-map-a-specific-value-into-rgb-color-code-in-matlab/24488819#24488819
col3 = [0 1 0]; %G
col2 = [1 1 0]; %Y
col1 = [1 0 0]; %R
n1 = 20; n2 = 20;
cmap=[linspace(col1(1),col2(1),n1);linspace(col1(2),col2(2),n1);linspace(col1(3),col2(3),n1)];
cmap(:,end+1:end+n2)=[linspace(col2(1),col3(1),n2);linspace(col2(2),col3(2),n2);linspace(col2(3),col3(3),n2)];
cmap = cmap.';

% Plot
colormap(cmap), hold on, box on
p = scatter(X,Y,[],Z,'filled','DisplayName','Data3');
cb = colorbar;
cb.Limits = [18 23];
cb.Ticks = [18:1:23];

% Cosmetics
p.MarkerEdgeColor = 'k';
xlabel('X')
ylabel('Y')
cb.Label.String = 'Z';

我想你所缺少的只是一个电话caxis https://www.mathworks.com/help/matlab/ref/caxis.html指定将颜色范围映射到的最小值和最大值:

caxis([18 23]);

请注意以下行...

cb.Limits = [18 23];

...仅改变刻度线限制 https://www.mathworks.com/help/matlab/ref/matlab.graphics.illustration.colorbar-properties.html#bt6akfm-Limits 显示的在颜色栏上,但不会更改有关数据如何映射到颜色范围的任何内容。这caxisfunction 是您控制它的方式(在上述情况下,将 18 的值映射到一端,将 23 的值映射到另一端)。默认情况下,您的代码将最小值和最大值映射为Z颜色范围(分别为 20.5 和 23)。然后,当您将颜色条上的刻度限制设置为更大的范围时,它只是用颜色图中的最后一种颜色(在本例中为红色)填充它。这就是为什么你会看到这么多。

Bonus

只是因为您可能感兴趣,您还可以通过以下方式使用插值interp1 https://www.mathworks.com/help/matlab/ref/interp1.html函数可以轻松生成颜色图,如下所示:

cmap = interp1([1 0 0; 1 1 0; 0 1 0], linspace(1, 3, 41));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MATLAB 中控制颜色条比例 的相关文章

  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 如何使用 2 个不同的 y 轴进行绘图?

    我想在 R 中叠加两个散点图 以便每组点都有自己的 不同的 y 轴 即在图上的位置 2 和 4 中 但这些点看起来叠加在同一个图上 是否可以这样做plot Edit显示问题的示例代码 example code for SO question
  • 在Matlab图例中使用Latex?

    我的 matlab 不接受我的 Latex 例如 如果我使用legend b 6 rightarrow b 7 它没有向我显示箭头 我该如何解决这个问题 尝试使用 Latex 解释器 例如 legend b 6 rightarrow b 7
  • 在 MATLAB 中验证输入的最佳实践

    在验证 MATLAB 函数中的输入时 什么时候使用 inputParser 比使用断言更好 或者还有其他更好的工具可用吗 我个人发现使用 inputParser 不必要地复杂 对于 Matlab 始终需要检查 3 项内容 存在 类型和范围
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • 使用网络计算机进行 Matlab 并行处理

    我熟悉matlabpool and parfor用法 但我仍然需要加快计算速度 我的 1GB 网络中有一台功能更强大的计算机 两台计算机都有 R2010b 并且具有相同的代码和路径 使用两台计算机进行并行计算的最简单方法是什么 我今天使用的
  • 使用正常数据直方图与直接公式进行熵估计(matlab)

    假设我们已经绘制了n 10000标准正态分布的样本 现在我想使用直方图计算其熵来计算概率 1 计算概率 例如使用matlab p x hist samples binnumbers area x 2 x 1 sum p p p area b
  • MATLAB 符号替换

    我知道在 MATLAB 中如果声明了 syms x y f x 2 y 2 grad gradient f 然后grad会存储值 2 x 2 y 如果我想评估梯度 2 2 I use subs f x y 2 2 这返回 4 4 我正在编写
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • 如何使用最小生成树方法将边缘连接到图像中的节点

    我正在做我的手写图像图形匹配项目 我想在图形中表示给定的单词图像 我使用下面的算法 Algorithm input Binary image B Grid width w Grid height h Output Graph g V E w
  • Matlab 错误:()-索引必须出现在索引表达式的最后

    我有这段代码 想要在制表符分隔的 txt 文件中写入一个数组 fid fopen oo txt wt for x 1 length s fprintf fid s t n s x 1 end fclose fid 但我收到此错误 Error
  • 如何调整x轴和y轴的大小

    如何调整 x 轴和 y 轴的大小 我想要什么 更具体 3900 60 30 0 60 120 180 3600 我做了什么 a 0 0 1 10000 plot a 我应该写什么才能按预期调整 x 和 y 轴的大小 EDIT 我不想 390
  • 用热图绘制 2 个变量

    我在 python 3 上 有两个变量 x 和 y 其中 x 的范围从 1 到 5 y 的范围从 0 03 到 0 7 然后我有一个方法 它接受 x 和 y 并生成标量数 我想创建一个热图类型图 其中 x 为 x 轴 y 为 y 轴 并使用
  • 从 3 个向量创建等值线图

    我正在尝试根据这些数据创建等高线图 pH D Tur 5 10 3 79 18918919 5 50 6 92 97297297 5 00 0 50 09009009 5 00 6 90 36036036 5 10 9 91 0810810
  • matlab 中的 for 或 while 循环

    我刚刚开始在编程课的 matlab 中使用 for 循环 基本的东西对我来说很好 但是我被要求 使用循环创建一个 3 x 5 矩阵 其中每个元素的值是其行号其列号除以行号和列号之和的幂 例如元素 2 3 的值为 2 3 2 3 1 6 那么
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 在 ipython 中使用 igraph 绘制顶点标签时出现问题

    我通常在 IPython 笔记本中工作 我使用以下命令在 Windows 上打开它 ipython qtconsole matplotlib inline 我目前正在使用 IPython QtConsole 3 0 0 Python 2 7
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • 在 matplotlib 中使用一组标量值对球体表面着色

    我对 matplotlib 相当陌生 这也是我的第一个问题 我试图代表脑电图记录的头皮表面电位 到目前为止 我已经有了一个球体投影的二维图形 它是使用轮廓生成的 并且几乎可以归结为普通的热图 有什么方法可以在半个球体上完成此操作吗 即生成一

随机推荐

  • Authorization_IdentityNotFound 错误 MS Graph API

    我们的应用程序将执行简单的 User ReadBasic All 功能 据我了解 这些功能不需要管理员权限 使用此处记录的流程 https graph microsoft io en us docs authorization app on
  • 如何通过URL中的ID获取单个资源?

    我有一个网址 例如 http example com page page id http example com page page id 我想知道如何获得page id路由中 url 的一部分 我希望我可以设计一些方法 例如 route
  • 无法弄清楚在 django 开发环境中提供静态图像

    我读了文章 http docs djangoproject com en dev howto static files 以及该主题上的其他人 但仍然无法弄清楚如何显示图像 除非将指向 Web 服务上现有文件的链接硬编码到 html 模板中
  • 在 NSTextView 中替换 NSTextStorage 的正确方法?

    我正在制作一些文本查看器应用程序 目前我需要非常频繁和精确的线路处理能力 所以我想子类化NSTextStorage班级 但我找不到任何方法来设置新的文本存储NSTextView 我能找到的唯一方法是 NSLayoutManager repl
  • 在 libc++ 中使用 double 调用 std::from_chars 时出现编译错误

    我有一个小代码如下 int main double d const char str 26 50 std from chars str str strlen str d std cout lt lt d 此代码在 libstdc 中按预期工
  • 在 Gtk 3 中向 ToolButton 添加图标

    有没有办法将图标添加到 Gtk ToolButton Gtk3 使用 PyGi for Python 以添加到 GTK 3 工具栏 下面是我的代码 self addfile Gtk ToolButton self addfile set l
  • rspec 模拟:验证“应该”方法中的期望?

    我正在尝试使用 rspec 的模拟来设置我可以在 应该 方法中验证的期望 但我不知道如何做到这一点 当我在模拟上调用 should receive 方法时 它before all 方法退出后立即验证预期的调用 这是一个小例子 describ
  • App Engine 标准第二代运行时的 Memcache 替代品

    谷歌已经发布了其通用版本App Engine 标准的第二代运行时 https cloud google com blog products serverless announcing cloud run the newest member
  • R- 找到值的唯一排列

    我希望创建包含两个不同值的向量的所有可能排列 其中我控制每个值的比例 例如 如果我有一个长度为 3 的向量 并且我想要包含单个 1 的所有可能组合 则我所需的输出是一个如下所示的列表 list 1 lt list c 1 0 0 c 0 1
  • 插值到特定时间

    假设我有这个代码 import numpy as np import time from datetime import datetime class Measurements def init self time var value se
  • 这个函数是怎么计算的呢?

    我一直在研究 CodeWars katas 并且发现了有人提出的一个非常酷的解决方案 我的问题是我不明白它是如何工作的 我了解其中的一些内容 就像它通常在做什么 但不了解细节 它自己回来了吗 它是如何进行计算的 有人可以向我解释一下这一点
  • Dagger:注入@Named 字符串?

    EDIT2023 06 28 除非您有充分的理由不这样做 否则只需使用 Spring Boot 作为您的平台 并使用它的自动布线以及所有其他免费功能 EDIT2018 02 08 演示如何执行此操作的示例项目位于https github c
  • 不可读的 Pom 文件 - Maven

    我一直在构建一个没有任何问题的项目 但突然遇到了这个错误 我尝试重新制作工作区 但现在每次都会遇到相同的错误 我正在尝试在 eclipse che 中使用 Maven 简单地构建和运行一个项目 Build command gt mvn cl
  • 在 Web API 中保存图像时无法解决“GDI+ 中发生一般错误”的问题

    我已经用谷歌搜索并搜索了这个原因的解决方案 但是 我无法找到这个问题的解决方案 我使用了从谷歌参考文献中获得的相同代码 下面是我的代码 public HttpResponseMessage Save ScreenCaptureDetails
  • 如何让下拉菜单在单击而不是悬停时打开/关闭?

    我对 javascript 和 ajax jquery 非常陌生 并且一直在努力尝试让脚本在单击而不是悬停时打开和关闭下拉菜单 有问题的菜单位于http www gamefriction com Coded http www gamefri
  • Go time.Tick 与 time.NewTicker

    我是 Go 新手 最近开始学习 我遇到过股票行情指示器和计时器 在代码中 我们可以通过两种方式创建代码 throttler time Tick time Millisecond 50 lt throttler throttler time
  • Hibernate JPA一对一保存子类实体

    我有一个一对一的关系 使用PrimaryKeyJoinColumn在父端注释 现在我想单独保存子实体 例如 我有Employee and EmpInfo作为子实体 我需要保存EmpInfo 当然是在将父级的 id 属性设置为它之后 但是 当
  • 枚举内存使用情况

    我想知道以下哪个占用更多内存 struct Constants var age 10 or enum Constants case age 10 我也想知道之间的区别enum and define在内存存储方面 有人可以帮我吗 TLDR 您
  • Meteor Template.onRendered 或 Template.rendered 用于使用 jquery 库?

    我想将选择 一个jquery库 与meteor一起使用 我只需要使用以下代码 ship chosen 我尝试使用 onRendered 但如果我想让它工作 我需要等待 Template createTradeForm onRendered
  • 在 MATLAB 中控制颜色条比例

    问题 如何在自定义 MATLAB 颜色条中指定颜色过渡 具体来说 我想让黄色 见下文 覆盖颜色条的更多区域 可能是 19 5 21 5 或接近的区域 Using 这个答案 https stackoverflow com questions