Matlab bar:使用颜色图(jet)将颜色设置为条形高度的函数

2024-03-19

我有 4 组不同的多个酒吧。我想,对于每个组,用颜色绘制每个条形,该颜色是其高度值(即相关条形的值)的函数colormap(jet).

目前,我已经做了:

h=bar(xpoints(1:4),bpcombined(1:4,:),'grouped','BarWidth',0.5);
colorbar;
colormap(jet); 

我得到下图:

正如您所看到的,对于每个条形,其颜色不是高度的函数:它只是一系列不同颜色(喷射颜色图),对于 4 组来说是相同的。

我怎样才能获得这种依赖性,我的意思是颜色图(jet)之后最高的条形将是红色,最低的蓝色条形?

Update 1

我尝试了建议的解决方案@masei但我在 Matlab 2016b 上收到以下错误:

No appropriate method, property, or field 'CData' for class 'matlab.graphics.chart.primitive.Bar'.

Error in test_plot_bar_color (line 17)
    b.CData(k,:) = y_color(k,:);

我不知道如何规避这个错误。

@masei告诉我用‘FaceColor’属性,但我不知道如何将其放在这个脚本中。

Update 2

我尝试应用的建议@marsei,即多次绘制 bar 组的部分(其他组设置为 Nan),如下所示:

  1 clear;
  2 % Data
  3 y = rand(10,4);
  4 % 2D array of nan
  5 y_nan = nan(size(y))
  6 % 1D array by default
  7 y_1d(1:numel(y)) = nan(numel(y),1);
  8 
  9 %Plot
 10 figure('Color', 'w');
 11 title('Bar with height-dependant color');
 12 for k = 1:size(y,2)
 13     % Set default 1D array
 14     y_temp = y_1d;
 15     % Put k-th part of data
 16     y_temp((k-1)*size(y_nan,1)+1:k*size(y_nan,1)) = y(1:size(y_nan,1),k);
 17     % Reshape 1D into 2D for bar
 18     y_final = reshape(y_temp,size(y,2),size(y,1));
 19     % Plot bar
 20     bar_h = bar(y_final,'BarWidth',0.5);
 21     y_color = vals2colormap(y_final(k,:),'jet');
 22     %b.FaceColor = y_color(:,:);
 23     %y_color
 24     bar_child=get(bar_h,'Children');
 25     bar_child.FaceColor = y_color(:,:);
 26     %colormap(y_color);
 27     %set(bar_child,'CData',y_final);
 28     hold on;
 29 end
 30 

但我收到以下错误:

Field assignment to a non-structure array object.

Error in test_plot_bar_color (line 25)
    bar_child.FaceColor = y_color(:,:);

我的方法有什么问题吗?


编辑 - 使用排序数据的示例(y = sort(rand(30,10),2) and separation_gap = 5)


您可以使用名为的常规栏属性CData为每个条分配一种颜色。颜色是在以下公式的帮助下计算的vals2colormap (web https://github.com/vistalab/vistateach/blob/master/cogneuro/tutorial1_timeseries/vals2colormap.m).

初始数据矩阵有 10 行,这给出了 10 组规则的条形bar阴谋。此时,改变CData第一个条的属性更改所有第一个条的颜色(对于所有组)。您无法分离第一个栏。

诀窍是展平矩阵 while 插入 NaN用于群体分离。这里,初始数据是10x4展平为 40 个元素向量,用单个元素分隔Nan。这样,您就可以完全控制每个单独的栏(栏不再分组)。

如下图

是由

% data
y = rand(10,4);

% add NaNs (for separation) and flatten
separation_gap = 1; % 2 columns of NaN
y_nan = [y nan(size(y,1), separation_gap)]';
y_flat = [nan(separation_gap,1); y_nan(:)];

%convert values to colomap
y_color = vals2colormap(y_flat, 'jet');

%plot and cange color
figure('Color', 'w');
b = bar(y_flat);%,'grouped'
b.FaceColor = 'flat';
for k = 1:size(y_flat,1)
    b.CData(k,:) = y_color(k,:);
end

title('Bar with height-dependant color');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab bar:使用颜色图(jet)将颜色设置为条形高度的函数 的相关文章

  • 拟合泊松直方图

    I am trying to fit a curve over the histogram of a Poisson distribution that looks like this 我修改了拟合函数 使其类似于泊松分布 其中参数 t 作
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • 螺旋环绕文本

    我看到在LaTeX 人们将文本包装成螺旋状 https tex stackexchange com questions 88751 text spirals with tikz如下所示 我想在 R 中复制这个 我虽然plotrix s ar
  • 如何使绘图的 xtick 标签成为简单的绘图?

    我不想用单词或数字作为 x 轴的刻度标签 而是想绘制一个简单的绘图 由直线和圆圈组成 作为每个 x 刻度的标签 这可能吗 如果是这样 在 matplotlib 中处理它的最佳方法是什么 我会删除刻度标签并将文本替换为patches http
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • MATLAB 中的霍夫变换

    有谁知道如何使用霍夫变换来检测二值图像中最强的线 A zeros 7 7 A 6 10 18 24 36 38 41 1 使用 rho theta 格式 其中 theta 以 45 为步长 从 45 到 90 以及如何在 MATLAB 中显
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 对数据进行分布拟合 - MATLAB

    我正在尝试对从显微镜图像中收集的一些数据进行分布 我们知道 152 左右的峰值是由于泊松过程造成的 我想将分布拟合到图像中心的大密度 同时忽略高强度数据 我知道如何将正态分布拟合到数据 红色曲线 但它不能很好地捕获右侧的重尾 尽管泊松分布应
  • 如何水平居中条形图注释

    我正在创建一个像这样的条形图 gender M F numbers males females bars plt bar gender numbers width 0 1 bottom None align center data None
  • ggplot更改图例中的几何顺序[重复]

    这个问题在这里已经有答案了 我有两个堆积面积图 上面画了一条线 在这两种情况下 我的绘图顺序都是这样的 创建ggplot 添加堆叠区域 geom area 更改堆叠区域颜色 添加行 geom line 改变线条颜色 在我的第一张图中 堆叠区
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 如何在 MATLAB 中绘制纹理映射三角形?

    我有一个三角形 u v 图像中的坐标 我想在 3D 坐标处绘制这个三角形 X Y Z 与图像中的三角形进行纹理映射 Here u v X Y Z都是具有三个元素的向量 代表三角形的三个角 我有一个非常丑陋 缓慢且令人不满意的解决方案 其中我
  • MATLAB 列含义的内存分析

    我正在使用 MATLAB 配置文件来使用命令观察内存 profile memory on profile clear my code profile report and i got this table 1 我想问一下什么意思 已分配内存
  • 从 X、Y、Z 数据、Excel 或其他工具进行 3D 绘图

    我的数据看起来像这样 1000 13 75 2 1000 21 79 21 1000 29 80 02 5000 29 87 9 5000 37 88 54 5000 45 88 56 10000 29 90 11 10000 37 90
  • 使用healpy通过HEALPix像素化制作2D直方图

    数据是天空中物体的坐标 例如如下 import pylab as plt import numpy as np l np random uniform 180 180 2000 b np random uniform 90 90 2000
  • Mathematica PlotMarkers 中标记的自定义间隔

    我试图在 Mathematica ListLinePlot 的同一个图中绘制多个列表 并使用 PlotMarkers 和 PlotLegend 包来获取最终数字 问题是 Mathematica 为每个点都放置了一个标记 这使得很难判断哪个标
  • Matlab:如何在没有颜色分级的情况下绘图?

    我的朋友制作了一个脚本来处理大量数据并绘制各种图表 但是当他运行脚本时 图表根据图例具有不同的颜色 当我这样做时 所有图表都相似 颜色渐变从黑色到红色的 见图 为什么不同以及如何获得不同颜色的图表 带有颜色分级图的 2D 绘图 figure
  • 从 pandas 数据框中绘制堆积条形图

    我有数据框 payout df head 10 复制以下 Excel 绘图的最简单 最智能和最快的方法是什么 我尝试过不同的方法 但无法让一切都到位 Thanks 如果您只想要一个堆积条形图 那么一种方法是使用循环来绘制数据框中的每一列 并

随机推荐

  • 在 Shiny 应用程序中包含一个 javascript 文件

    我需要将 js 库包含到我的 Shiny 应用程序中 目前我使用 includeHTML 将脚本直接包含到 html 代码中 例如 includeHTML URL js 如果我使用tags script 例如 当我尝试浏览js文件时 浏览器
  • 如何将 JointJS 与使用 Angular CLI 构建的应用程序一起使用?

    我已经通过 npm 安装了 jointjs 并安装了 types 并且代码编译 构建良好 Code import Component from angular core import as joint from node modules j
  • 辅音和元音 Swift

    我是 Swift 的新手 谁能向我解释一下为什么我总是遇到这个问题 我正在使用 Xcode 6 4 但这是我的问题 我希望我能解决它 但我需要我的函数接受大字符串 然后返回 Tuple numVowels numConsonants 计算以
  • Virtualenv 没有名为 zlib 的模块

    我正在尝试在 Python2 6 下创建 Python 2 7 虚拟环境 我只是运行 virtualenv python python27 python27 correctly leads to my python installation
  • 仅解压缩特定扩展名

    我有一个包含 jpg png gif 图像的 zip 存档目录 我想解压缩每个存档 仅获取图像并将它们放入具有存档名称的文件夹中 So files archive1 zip files archive2 zip files archive3
  • JSF 2.0 注入不同范围的托管 bean

    我有一个无状态的控制器 负责处理表单 这被定义为ApplicationScoped 在我的页面上 我有一个与支持 bean 关联的表单 定义为ViewScoped 当我想处理表单时出现错误 serverError class com sun
  • 如何在 Blazor 客户端应用程序中使用 Bootstrap 模式?

    我正在尝试显示引导模式然后绑定其按钮 但我无法通过显示模式的第一步 我正在使用 net core 3 1 的 Blazor 客户端模板 我有一个名为 Modal razor 的页面 其中包含我从 getbootstrap com 找到的引导
  • 无法解决依赖关系 - Laravel

    照亮 合同 容器 BindingResolutionException 无法解析 App Jobs BudgetFetch 类中的依赖关系 参数 0 customerId namespace App Http Controllers use
  • 如何在ionic 3中进行水平滚动

    look at my 我在离子卷轴中有 10 个名字 但它像段落一样进入下一行 这是我的 html 代码
  • Cypress 在请求正文中使用文件进行 HTTP POST 时出错

    我从 Cypress 6 8 0 升级到 7 0 1 升级后 当 Cypress 测试之一调用此函数时 async saveTask task file const requestBody new FormData requestBody
  • 更新由 NSFetchedResultsController 管理且在第一部分有 1 个额外单元格的 UITableView

    主详细信息申请 我有一个UITableViewController由一个NSFetchedResultsController及其委托方法 我在表格视图的第一部分还有一个额外的单元格 其中有一个UIWebView其中显示嵌入视频 该单元格不属
  • 获取数组的一部分而不创建新副本

    我正在尝试找到一种解决方案 解决方法来切片非常大的数组而不创建新副本 这是我的问题 假设我有一个大小为 1 亿或更多的 double int 大型数组 我将代表不同事物的许多不同数组存储在一个非常大的数组中 以显着节省内存使用量 因此 我没
  • 如何为 wkwebview 使用 iOS 13 深色模式

    我正在使用 Xcode 11 beta 开发 iOS 13 有什么办法可以在网页视图上支持暗模式吗 我已经为除 WKWebviews 之外的所有其他视图创建了颜色集 如何更改深色模式的网页视图背景和文本颜色 假设您的问题是询问如何根据浅色模
  • 创建专用函数模板的最佳方法是什么?

    有更好的方法来执行以下操作吗 include
  • THREE.js 正交相机缩放到鼠标点

    我正在为我们的 THREE js 应用程序开发正交相机 本质上 该相机将以 2D 方式向用户呈现场景 用户可以选择在 2D 和 3D 相机之间切换 该相机将允许平移和缩放到鼠标点 我可以进行平移 也可以进行缩放 但不能缩放到鼠标点 这是我的
  • 如何将数字加 1 到 NSMutableArray

    如何将 1 和变化的数字之间的每个数字添加到 NSMutableArray 中 以便它可以显示在 UITableView 中 例如 如果当前变化的数字是 8 则数组应包含 1 2 3 4 5 6 7 8 谢谢 我推荐以下方法 不需要数组 给
  • 广播联系人添加/更改?

    有没有我可以注册的标准广播意图BroadcastReceiver每当添加或更改联系人时都会触发该操作 我已经浏览文档有一段时间了 但没有找到任何东西 也许它隐藏在某个深处 而你们中的一个人知道在哪里 我在这里回答我自己的问题 如果有人有更好
  • 为什么“unbounded_array”比“vector”更有效?

    这里说 http www boost org doc libs 1 42 0 libs numeric ublas doc unbounded array htm that 无界数组类似于 std vector 可以在其中生长 大小超出任何
  • Android GridView 缺陷,如何删除右侧多余的空白

    我有一个基于 GridView 的日历 我有以下 XML 布局 其中选择器设置为 nullandroid listSelector null 根据我从这个网站得到的建议 现在我在 GridView 右侧得到了几个像素宽的条带 为什么 我已尽
  • Matlab bar:使用颜色图(jet)将颜色设置为条形高度的函数

    我有 4 组不同的多个酒吧 我想 对于每个组 用颜色绘制每个条形 该颜色是其高度值 即相关条形的值 的函数colormap jet 目前 我已经做了 h bar xpoints 1 4 bpcombined 1 4 grouped BarW