matlab .cdata,Matlab:bar没有公共财产CData存在

Matlab示例代码无法在Matlab 2017a(

Linux 64位)中运行:

b = bar(rand(10,1));

b.FaceColor = 'flat';

b.CData(2,:) = [.5 0 .5];

它无法对特定条形图进行着色并发出警告:

No public property CData exists for class matlab.graphics.chart.primitive.Bar.

我不知道它仅仅是Matlab 2017b的特定功能吗?

此代码仅用于为特定条形图着色.在Matlab 2012a中,它可以通过以下方式轻松完成:

bh=bar(MyStem); h=get(bh, 'children');

shading flat; set(h,'FaceVertexCData',MyColor);

我无法理解为什么Matlab 2017会删除此功能.

最佳答案 关于CData属性,我已在评论中写道.

无论如何,我认为另一种解决方法可能比建议的更简单,可以是:

x=rand(1,10);

b=bar([x;zeros(1,length(x))]);

xlim([0.5 1.5])

set(b,'FaceColor','r')

set(b(2),'FaceColor','b')

iDe8W.jpg

如果要像常规条形图中那样对条形编号,可以添加以下内容:

set(gca,'XTick',0.5+[b.XOffset])

set(gca,'XTicklabels',1:length(x))

Fwbi2.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值