将图例添加到条形图

45次观看(最近30天)
我有一个带有多种颜色的条形图,想创建一个传奇,但我不知道将其放在我的代码中。
我使用的代码如下:
b = bar(steps2.time,steps2.Steps);
b.faceColor ='平坦的';
为了i = 1:长度(steps2.time)
转变步骤22.Action(i)
案子“跳”
b.cdata(i,:) = [1 0 0];
案子“跑”
b.cdata(i,:) = [1 1 0];
案子“蹲”
b.cdata(i,:) = [0 1 1];
案子“循环”
b.cdata(i,:) = [0 0 1];
否则
b.cdata(i,:) = [0 1 0];
结尾
结尾
我尝试了各种解决方案,例如:万博 尤文图斯
set(b,{'displayName'},{'jump','run'','squat','cycle','other'}'),它给出以下错误:使用matlab.grabpaphics.chart.chart.chart.primitive。条/套装
值单元阵列手柄尺寸必须匹配手柄向量长度。
并且
传奇(b,'跳跃','run','squat',cycal','''),仅显示“跳跃”

答案(3)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021年7月7日
嗨,这是您锻炼的简单解决方案:
labelit = {};
腿= {“跳”,,,,'跑',,,,'蹲',,,,'循环',,,,'其他'};
为了II = 1:5
b = bar(a(ii),b(ii));抓住
b.faceColor ='平坦的';
labelit {ii} = leg {ii};
legend(labelit {:});
结尾
3条评论
吉莉安·默里(Gillian Murray)
奏效了,准确的传说出现在我的图表上,但是当我在上面列出的代码之后放置该代码时,它将其余的条形图弄乱了。如果我在提供的代码之后放置上面列出的代码,则会获得此错误:警告:错误更新栏。
CDATA必须是RGB三重态,标量,M-BY-1矢量与X相同的长度或M-BY-3矩阵。
我没有重新定义B,所以这正是我所提出的:
数字()
labelit = {};
腿= {'跳',,,,'跑',,,,'蹲',,,,'循环',,,,'其他'};
为了II = 1:5
b = bar(steps2.time(ii),sptess2.Steps(ii));抓住
b.faceColor ='平坦的';
labelit {ii} = leg {ii};
legend(labelit {:});
结尾
为了i = 1:长度(objuct2steps2.time)
转变objuct2stepss2.ActivityType(i)
案子“跳”
b.cdata(i,:) = [1 0 0];
案子“跑”
b.cdata(i,:) = [0 1 1];
案子“蹲”
b.cdata(i,:) = [0 1 0];
案子“循环”
b.cdata(i,:) = [0 0 1];
否则
b.cdata(i,:) = [1 0 1];
结尾
结尾

登录发表评论。


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021年7月8日
如果您担心所有条形都有专门的颜色,则需要使用此代码:
数字()
labelit = {};
Cl = [1 0 0;0 1 1;0 1 0;0 0 1;1 0 1];
腿= {'跳',,,,'跑',,,,'蹲',,,,'循环',,,,'其他'};
为了II = 1:5
b = bar(steps2.time(ii),sptess2.Steps(ii));抓住
b.faceColor ='平坦的';
b.cdata = cl(ii,:);
labelit {ii} = leg {ii};
legend(labelit {:});
结尾
1条评论
吉莉安·默里(Gillian Murray)
它仍然无法正常工作,传说很好,但是当我输入代码上方时,它会产生一个厚的“运行”条,甚至不是我的数据的一部分。当我遵循上面的代码时:
b = bar(steps2.time,steps2.Steps);
b.faceColor ='平坦的';
为了i = 1:长度(steps2.time)
转变steps22.ActivityType(i)
案子“跳”
b.cdata(i,:) = [1 0 0];
案子“跑”
b.cdata(i,:) = [0 1 1];
案子“蹲”
b.cdata(i,:) = [0 1 0];
案子“循环”
b.cdata(i,:) = [0 0 1];
否则
b.cdata(i,:) = [1 0 1];
结尾
结尾
除了我的实际数据之外,我仍然得到了“运行”的怪异部分。在周期的蓝色步骤之前,没有“运行”数据。

登录发表评论。


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021年7月8日
为什么您继续使用代码的无用(已删除)部分:
为了i = 1:长度(steps2.time)
转变steps22.ActivityType(i)
案子“跳”
b.cdata(i,:) = [1 0 0];
案子“跑”
b.cdata(i,:) = [0 1 1];
案子“蹲”
b.cdata(i,:) = [0 1 0];
案子“循环”
b.cdata(i,:) = [0 0 1];
否则
b.cdata(i,:) = [1 0 1];
结尾
结尾
这是完整的代码:
数字()
labelit = {};
Cl = [1 0 0;0 1 1;0 1 0;0 0 1;1 0 1];
腿= {'跳',,,,'跑',,,,'蹲',,,,'循环',,,,'其他'};
为了II = 1:5
b = bar(steps2.time(ii),sptess2.Steps(ii));抓住
b.faceColor ='平坦的';
b.cdata = cl(ii,:);
labelit {ii} = leg {ii};
legend(labelit {:});
结尾
1条评论
吉莉安·默里(Gillian Murray)
该代码不起作用,也不会从sptess22.ActivityType中提取数据,该数据为每个数据的时间点和步骤sptep一个跳跃,运行,蹲下,周期或其他的值。如果我完全使用您提供的代码实际上没有的代码,那么这个随机栏和传奇是:

登录发表评论。

s manbetx 845


发布

R2020a

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!