【问题标题】:matlab bar groups centered at specified location on the x-axis以 x 轴上指定位置为中心的 matlab 条形组
【发布时间】:2011-12-19 21:08:47
【问题描述】:

假设一个人想要绘制 2 组元素数量不等的数据

X=[1.1 1.4 1.2 1.1];
Y=[1.4 1.4 1.1]; 

我可以使用箱线图

boxplot([X Y],[1 1 1 1 2 2 2]) 

然而,绘制这些 酒吧没有这样的功能。即我想绘制 X 的每个值和 Y 的每个值的条形图,但值 在 X 中应该聚集在一起并且应该远离 Y 中的条。 理想情况下,除了组之外,还想指定第三个参数 这将指定条形应该在 x 轴上的哪个位置居中(例如在我的情况下为 [2 11] - 每个组一个值)。

有人有这样的功能吗? 我检查了 matlabcentral 并没有找到我要找的东西。 谢谢 升

【问题讨论】:

  • 您可能对我的函数distributionPlot 感兴趣,它会旋转 X 和 Y 的直方图。

标签: matlab plot bar-chart


【解决方案1】:

这样的?

X=[1.1 1.4 1.2 1.1];
Y=[1.4 1.4 1.1];
a = [2 11] - 1;

bar((1:numel(X))+a(1), X, 'b')
hold on
bar((1:numel(Y))+a(2), Y, 'r')
hold off
set(gca,'XTickMode','auto')
legend({'X','Y'})

【讨论】:

  • 非常感谢您的回复,这正是我想要的。
【解决方案2】:

这只是一个技巧,但对于初学者来说可能已经足够了:

X = [1.1 1.4 1.2 1.1]
Y = [1.4 1.4 1]
Y(end+1) = NaN
bar([X; Y])

如果你想改变间距,你可以玩NaN的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2015-12-21
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多