eric415 发表于 2009-12-24 20:28

matlab三维柱状图bar3c能不显示吗?

我想让三维柱状图中的零元素隐藏掉,请高人指点

ChaChing 发表于 2009-12-24 21:17

回复 楼主 eric415 的帖子

没用过, 刚搜了下, 没bar3c!?
水平专业有限, 可否举例并给齐代码! 好试看看!

eric415 发表于 2009-12-29 16:03

啊,我打错了,是bar3。比如画一个单位矩阵,bar3(eye(5),'detached');
画出来的
http://forum.vibunion.com/data/attachment/album/200912/30/89781_1262158649SjJV.jpg

我想让等于零的地方不显示

[ 本帖最后由 friendchj 于 2009-12-30 15:38 编辑 ]

friendchj 发表于 2009-12-30 02:43

记得二楼提到过,可以让零值赋以 NaN,让它不显示。

ChaChing 发表于 2009-12-30 08:19

原帖由 friendchj 于 2009-12-30 02:43 发表
记得二楼提到过,可以让零值赋以 NaN,让它不显示。
昨天就是朝这个方向试, 但是没有成功!
我想可能需采用最原始的作法, 进入bar3.m修改了!
sorry! 待高人路过!

eric415 发表于 2009-12-30 14:13

先磕个头:@)

messenger 发表于 2009-12-30 23:54

直接修改bar3.m太难了,这个命令是把同一种颜色的柱状图一次画出以后,再画另一种颜色的图,如果要隐藏零元素,则需要改为同一种颜色的柱状图分开画出,需要改很多东西,而且在改之前还要搞明白绘制流程。

因为bar3是将同一种颜色的柱状图一起画出的,所以同一种颜色的图是一个句柄,因而不能通过修改句柄而达到隐藏零元素的目的,因为修改句柄后,连不为零的同一颜色的柱状图也隐藏了。

想了一种变通方法,即将零元素图遮盖。在画完需要画的柱状图后,再叠加一幅白色的元素全图零的柱状图,从而达到近似隐藏的效果。

z=eye(3)
bar3(z)
hold on
z0=zeros(3)    %添加一个z=0的柱状图
h0=bar3(z0)
set(h0(1:3),'FaceColor','white', 'EdgeColor','cyan')

ChaChing 发表于 2009-12-31 00:06

原帖由 messenger 于 2009-12-30 23:54 发表
直接修改bar3.m太难了,这个命令是把同一种颜色的柱状图一次画出以后,再画另一种颜色的图,如果要隐藏零元素,则需要改为同一种颜色的柱状图分开画出,需要改很多东西,而且在改之前还要搞明白绘制流程。
因为bar3是将同一种颜色的柱状图一起画出的,所以同一种颜色的图是一个句柄,因而不能通过修改句柄而达到隐藏零元素的目的,因为修改句柄后,连不为零的同一颜色的柱状图也隐藏了。 ...
早上试了下, 的确如此!

eric415 发表于 2010-1-8 13:21

如果出现负值的话就不完美了。
M=diag()
bar3(M)
hold on
z0=zeros(5,5)    %添加一个z=0的柱状图
h0=bar3(z0)
set(h0(1:5),'FaceColor','white', 'EdgeColor','cyan')
有没有办法让等于零的地方是透明的

ChaChing 发表于 2010-1-8 19:43

回复 9楼 eric415 的帖子

那就可能如5F所说的, 很麻烦了!

friendchj 发表于 2010-1-9 07:11

可以找一个函数单独画长方体就ok了,在官网下一个voxel函数,然后可以这样:
clc
clear
M=diag();
=size(M);
hold on
for i=1:l1
    for j=1:l2
      if abs(M(i,j))>eps
      voxel(,[.3,.3,M(i,j)],.7);
      end
    end
end
grid on
view()
hold off

maigicku 发表于 2010-1-9 10:11

高手就是不一样。。昨天一直在找能够代替bar3的函数,可就是没有合适的。。

ChaChing 发表于 2010-1-9 17:06

的确friendchj不仅是难得的高手, 也蛮认真实在的!
个人尽忘记去官网搜看看!:@L

eric415 发表于 2010-1-9 18:22

这个问题终于解决圆满了,谢谢friendchj老师,谢谢大家

wangxudong3637 发表于 2012-2-24 22:21

真是顶级高手啊 我也遇到这个问题了
页: [1] 2
查看完整版本: matlab三维柱状图bar3c能不显示吗?