【问题标题】:multiple colours on matlab histogrammatlab直方图上的多种颜色
【发布时间】:2013-10-17 23:22:45
【问题描述】:

您好,我正在尝试在 matlab 直方图上获取多种颜色 - 我认为应该这样做:

figure
hist(ligand,50)
h=findobj(gca,'Type','patch');
set(h,'FaceColor',[0 .5 .5],'EdgeColor','w')
hold on;
hist(potassium,50)
g=findobj(gca,'Type','patch');
set(g,'FaceColor',[0 1 1],'EdgeColor','w')
hold on;
hist(rectifier,50)
title('Alignment to AFP1')
xlabel('Score'); ylabel('Number of Sequences')
hold off;

第一个颜色是 [0 .5 .5],第二个是 [0 1 1],第三个是默认颜色。然而,即使我使用两个句柄 h 和 g 为前两个指定了两种单独的颜色 - 两者都是相同的颜色,使用 g 句柄。

我做错了什么?

编辑 - 这是 Luis Mendos 的建议 - 我得到一个“索引超出矩阵维度”,如下所示

figure
hist(ligand,50)
g=findobj(gca,'Type','patch');
set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
hold on;
hist(potassium,50)
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
hist(rectifier,50)
title('Alignment to AFP1')
xlabel('Score'); ylabel('Number of Sequences')
hold off; 

谢谢。

【问题讨论】:

  • 你试过用 h = hist(ligand, 50) 代替 gca 吗?
  • 我认为问题在于g 是一个二元素向量。试试set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
  • @lhcgeneva hist 不返回句柄。它将返回 bin 计数

标签: matlab colors histogram


【解决方案1】:

问题在于g 是一个二元素向量,因为它包含了已经绘制的两个直方图。删除带有 h 的行(第 3 行和第 4 行)并将 set(g,...) 行替换为

set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')

【讨论】:

  • 嗨 Luis - 再次感谢您回答我的一个问题。添加您的建议的第二行时似乎存在问题,给我一个 matirx out of bounds 错误。我会用我正在使用的当前代码更新我的问题。
  • @brucezepplin 在更新后的代码中,您需要将第三行 (g=findobj...) 和第四行 (set(g(1)...) 移动到第二个 hist 之后和 set(g(2)... 之前。试一试,告诉我它是否有效
  • @brucezeppelin 在绘制了两个直方图之后添加findobj 行,这样g 就包含了这两个直方图
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 2011-05-26
  • 2013-11-24
  • 2016-12-28
  • 2013-06-21
  • 1970-01-01
  • 2012-10-25
相关资源
最近更新 更多