Matlab,直方图绘制数据值bar

时间:2013-09-17 11:30:52

标签: matlab

我想在matlab中的直方图中显示每个条的值。我将所有图保存为matlab .fig文件。如何改变数字? 任何想法?

由于

2 个答案:

答案 0 :(得分:1)

这可能不完美,但这是一个开始:

x =rand(10,1);
bar(x(:,1));
text(1:10,x,num2str(x))

enter image description here

<强>更新 如果你想要直方图而不是条形码:

x =ceil(10*rand(30,1));
hist(x);
a = hist(x);

% This can most likely be done without a loop, but here goes:
for ii = 1:10
    text(ii,a(ii),num2str(a(ii)))
end

enter image description here

您可以通过添加a(ii)+0.1处的文字或类似内容来抵消数字。除此之外,请参阅this answer by Eitan,获取一些提示和技巧。

答案 1 :(得分:1)

以下是从Y文件(带条形图)获取.fig数据的一些代码,然后显示相应的文本。 Y数据隐藏在当前axes的子项中 - 我们需要两次应用get命令。

%create figure
h = figure('Color','w');
x =rand(10,1);
bar(x(:,1));
set(gca,'XLim', [0 11], 'YLim', [0 1]);
saveas(h,'myfig.fig');
close(h);

%open figure, get the bar data, then text
open('myfig.fig');
xdata = get(get(gca,'Children'), 'xData')
ydata = get(get(gca,'Children'), 'YData')
text(xdata, ydata, num2str(ydata',2), 'HorizontalAlignment', 'Center', 'VerticalAlignment', 'Bottom' );