【问题标题】:Plot 3D histogram using bar3使用 bar3 绘制 3D 直方图
【发布时间】:2013-07-27 10:39:59
【问题描述】:

我目前正在尝试使用 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 是不可能的。

编辑:不同的颜色并不重要,它只是关于 bin 位置

【问题讨论】:

    标签: matlab visualization histogram


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 1970-01-01
      • 2020-12-02
      • 2014-11-12
      • 1970-01-01
      • 2023-03-15
      • 2023-04-01
      • 2019-02-22
      • 2020-09-25
      相关资源
      最近更新 更多