matlab - 对数刻度(x 轴)直方图

标签 matlab plot histogram

我需要的是一个以对数刻度显示 X 轴的直方图。但是,我仍然希望直方图中的每个条形都具有相同的宽度。

无论如何,我想出了(或发现)具有较高值的​​显示条与较窄的显示条(它们在普通刻度上具有相同的宽度,而不是在对数刻度上)。

这是我现在正在做的事情:

edges = 10.^(c_min:0.1:c_max); 
h = histc(data, edges);
bar(edges, h); set(gca, 'Xscale', 'log');

最佳答案

由于条形图应均匀分布,因此您可以使用 x 值 1,2,.. 绘制它们,然后更改轴标签。

edges = 10.^(c_min:0.1:c_max); 
h = histc(data, edges);

centers = sqrt(edges(1:end-1).*edges(2:end));

bar(h)

%# fix the x-labels, x-axis extents
xlim([0.5,length(centers)+0.5])
set(gca,'xticklabel',num2str(centers(:),'%5.2f'))

关于matlab - 对数刻度(x 轴)直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11933787/

相关文章:

python - 向按年线分组的时间序列添加标签 - Matplotlib、Python

python - Pandas 系列箱线图未正确显示

python - 将直方图集成到引导模拟图中

matlab - 等价于 MATLAB 中的逗号运算符?

r - R 中的堆积条形图,每天多行

matlab - 在 Matlab 中如何使用科学记数法(尾数和指数)中的变量?

python - 不使用 plt 从直方图中获取值

java - 直方图项目 : code throws ArrayIndexOutOfBoundsException

matlab - 排列矩阵行内的元素

matlab - 在 MATLAB 中使用 SVD 压缩图像