Matlab之colormap, FaceVertexCData

本文详细介绍了Matlab中的colormap及其三个主要作用,并深入探讨了FaceVertexCData如何用于指定顶点颜色,包括通过实例展示了如何设置直方图的颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先说说colormap.

它提供了一种着色方案,我认为它有3个作用:

       1)Matlab内置多种样式的color map, 在任一个Figure中,打开菜单"Edit-->ColorMap..",弹出"Colormap Editor" 界面。在该界面上打开"Tools-->Standard Colormps", 你就能看到了。Colormaps用一个index值来代表颜色,与RGB方式标志颜色相比,可以大大节省空间。

       2)方便的提供渐变色,我们只要指定一个colormap中首尾色,它就能按照该colormap,为我们填充中间区域的颜色。

       3)我们可以灵活的给图像换颜色,因为用的是index,对于不同的colormap来说,颜色是不一样的。

 

  我们看到这个界面的右下角有Color data min和max值,就是index的有效范围。


  再来说说FaceVertexCData.

  这个东西是来指定vertex上的颜色的。

 比如下面一段代码:

   %  data =
   %  17.2820   26.6375
   %  84.0000   81.6667
   %  100.0000  101.0000

      mybar = bar(data);
     ch = get(mybar,'Children');
     fvd = get(ch{1},'Faces');
    fvcd = get(ch{1},'FaceVertexCData');
    
        fvd2 = get(ch{2},'Faces');
    fvcd2 = get(ch{2},'FaceVertexCData');

 画出来的直方图效果如下:


ch显示的是:

ch =

    [175.0568]
    [178.0564]

,是因为有两个对比组。

fvd =

     2     3     4     5
     7     8     9    10
    12    13    14    15

有3行,是因为每个组有3个方图,每个方图要有4个点。我们从fvd可以看到,点的最大编号是15,其实说明,这三个方图共用16个点,但真正起作用的应该是fvd中列出的点。

但其他几个点的作用是什么,我们不得而知。再验证一个是否是16个点,看下面:

 length(fvcd)

ans =

    16

fvcd是16X1的矩阵,每行代表一个点,里面的数据代表color的index.  其有16行,说明的确用了16个点。

如果我们要设定方图颜色,就可以设定 FaceVertexCData,比如:

 set(ch{1},'FaceVertexCData',[1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1]);

需要注意,后面FaceVertexCData的值的格式要设定正确,在这里要指定16个点,每个点的color index是1.

  ch = get(mybar,'Children');执行的结果是返回ch{0},ch{1}, 就是因为有2个对比组。分别对ch{0}和ch{1}设定不同的FaceVertexCData,就可以把对比组用颜色区分。


参考文献:

1. http://www.mathworks.cn/cn/help/matlab/creating_plots/bar-and-area-graphs.html

2. http://www.phys.ohiou.edu/computer/matlab/techdoc/ref/patch.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值