Octave 6.2.0绘制直方图x轴与y轴颠倒互换问题该如何解决
Octave绘制索引对应数值柱状图坐标轴异常解决方案
问题根源
你当前调用的hist(bel)默认逻辑为统计bel向量内不同数值的出现频次:默认x轴展示bel的数值区间,y轴展示对应区间的元素计数,和你预期的「x轴为数据索引、y轴为对应位置的bel数值」需求完全不匹配,因此出现坐标轴反向的问题。
解决方案
首选方案(更贴合需求):使用bar函数绘制
你需要的不是统计频次的直方图,而是展示每个索引对应数值的柱状图,直接使用bar函数即可快速实现,修改后代码如下:
function plot_histogram(bel) N = length(bel); x = 1:N; bar(x, bel); axis([0 N 0 1]) % 适配bel所有元素之和为1的取值范围,可按需调整 end
备选方案:使用hist函数调整参数实现
如果必须使用hist函数完成需求,需要手动指定bin位置为索引序列,同时将bel值作为权重参数传入,调整后代码如下:
function plot_histogram(bel) N = length(bel); x = 1:N; hist(x, N, bel); axis([0 N 0 1]) end
内容的提问来源于stack exchange,提问作者Victor Henrique Gonçalves
相关产品推荐
相关产品推荐

