【问题标题】:Creating a Bar Graph where each Bar is a Histogram创建条形图,其中每个条形图都是直方图
【发布时间】:2014-12-04 02:35:07
【问题描述】:

我正在创建一个线图,其中每个点的 y 值是向量 i 的平均值。每个点的x值为i。

我想可视化每个向量中数字的分布,最好都在同一个图表上。

有没有一种方法可以制作条形图,其中每个条形 i 都类似于颜色条,表示向量 i 的直方图。所以基本上我希望得到 20 个左右的条形图,每个条形图都是直方图。

或者,如果有更好的方法来可视化单个图上的多个直方图,我想听听。

【问题讨论】:

  • 如果您的所有直方图都使用相同的 bin,那么热图(即 2D 平面图像)的每一列代表一个直方图,而您使用颜色代表相对频率呢?
  • 我最初想使用热图,但这似乎是在创建一个图表,其中 y 值的范围是向量的 [1 end],然后颜色是每个单元格中的值。而我想要相反,即范围为 [min(vector) max(vector)] 并且颜色是每个不同值的计数。我想我可以对每个向量进行排序,并通过 heatmap 方法查看颜色块。
  • 我不知道 heatmap 方法...我建议您制作所有直方图(使用相同数量的 bin)假设为列向量,然后将它们连接在一起成二维矩阵,使用imshow 显示它,并选择colormap
  • 如果你能设法正确地重新排列你的数据,你可以考虑使用a histrogram of multiple columns

标签: matlab histogram bar-chart


【解决方案1】:

我使用 Dan 的解决方案解决了这个问题。我获取了每个向量的直方图(具有特定的 bin 间隔),并将它们全部存储在 2D 矩阵中(每一列都是一个完整的直方图)。然后用 image() 显示它(没有访问 imshow 的权限)。

不过,我确实不得不处理轴标签,因为 image() 函数是根据 2D 矩阵的坐标而不是原始向量中的值来绘制它的。通过调用 set(gca,'YTickLabel/YTick') 解决了这个问题。还必须将 YDir 设置回“正常”而不是“反向”。我认为 image() 正在翻转它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 2017-08-28
    • 2015-12-07
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多