我目前正在尝试使用bar3绘制hist3的输出。这是一个简单的例子:
vec_x = [1 2 4 5 7 8 9 3 8 7 2]';
vec_y = [1 3 9 5 7 8 1 3 2 9 2]';
vec_bin_edges = 0:9;
hist3([vec_x vec_y], 'Edges', {vec_bin_edges, vec_bin_edges});
mat_joint = hist3([vec_x vec_y], 'Edges', {vec_bin_edges, vec_bin_edges});
figure
bar3(mat_joint, 1);
axis tight
为了证明我的问题,我做了两个数字的两张照片:
这是hist3([vec_x vec_y], 'Edges', {vec_bin_edges, vec_bin_edges});
这是bar3(mat_joint, 1);
的输出
正如您所看到的,bar3
函数并不像hist3
那样将数据值真正“分档”,因此条形图的位置会略微移动。我现在的问题是,是否可以使bar3
情节看起来与hist3
情节完全相同。我这样做的动机是,我需要修改mat_joint
矩阵并再次绘制它,这是使用hist3
无法实现的。
编辑:不同颜色并不重要,只是仓位
答案 0 :(得分:1)
set(gca, 'xtick', [1.5:1:10.5]);
set(gca, 'ytick', [1.5:1:10.5]);
vec_bin_labels = 1:10;
vec_string_bin_labels = reshape(cellstr(num2str(vec_bin_labels(:))), size(vec_bin_labels));
set(gca, 'xticklabel', vec_string_bin_labels);
set(gca, 'yticklabel', vec_string_bin_labels);