我想在matlab中的直方图中显示每个条的值。我将所有图保存为matlab .fig文件。如何改变数字? 任何想法?
由于
答案 0 :(得分:1)
这可能不完美,但这是一个开始:
x =rand(10,1);
bar(x(:,1));
text(1:10,x,num2str(x))
<强>更新强> 如果你想要直方图而不是条形码:
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
您可以通过添加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' );