【发布时间】:2015-07-31 20:17:53
【问题描述】:
是否可以在同一轴上绘制多个 bar 或 barh,并为每个轴使用不同的 BaseValue?
当我尝试设置第二个条形图的BaseValue 属性时,它也会更改第一个条形图的BaseValue!请参阅下面的示例。
使用多个轴的解决方案是here,但可以在不创建附加轴的情况下完成吗?具体来说,我想将BaseValue 与我正在绘制的其他数据相关联,因此覆盖另一个轴是不切实际的,因为我不能(或者我不知道如何?)参考坐标原来的轴。
subplot(1,3,1);
bar(1:10,'BaseValue',5,'FaceColor','b');
hold on; plot([0 11],[5 5],'k-','LineWidth',2);
plot([0 11],[15 15],'k-','LineWidth',2); axis([0 11 0 21]);
subplot(1,3,2);
bar(11:20,'BaseValue',15,'FaceColor','r');
hold on; plot([0 11],[5 5],'k-','LineWidth',2);
plot([0 11],[15 15],'k-','LineWidth',2); axis([0 11 0 21]);
subplot(1,3,3);
bar(1:10,'BaseValue',5,'FaceColor','b'); hold on;
bar(11:20,'BaseValue',15,'FaceColor','r');
plot([0 11],[5 5],'k-','LineWidth',2);
plot([0 11],[15 15],'k-','LineWidth',2);axis([0 11 0 21]);
【问题讨论】:
-
这似乎是在最近的 matlab 更新中出现的变化,因为它在 2013a 中按预期执行,但在 R2014b 中给出了“损坏”行为。该行为似乎是半有意的,因为每个
Bar对象都有一个BaseLine属性,该属性是只读的,并且似乎总是在给定轴中的所有条形图对象之间匹配。