如何在Matlab中以对数比例绘制带负值的箱线图?

如何在Matlab中以对数比例绘制带负值的箱线图?,matlab,plot,boxplot,logarithm,Matlab,Plot,Boxplot,Logarithm,我想用箱线图比较两个数据集。但是,其中一个数据集的范围很大(-2500->1800),而另一个数据集更紧凑(-45->35) 为了正确地比较两者,我希望在两个箱线图中都有相似的y轴。由于范围不同,我尝试使用logscale,希望它能产生良好的可读性: subplot(1,2,1) boxplot(DEM) set(gca, 'YScale', 'log') ylim([0 1750]) subplot(1,2,2) boxplot(DEM2) set(gca, 'YScale', 'log')

我想用箱线图比较两个数据集。但是,其中一个数据集的范围很大(-2500->1800),而另一个数据集更紧凑(-45->35)

为了正确地比较两者,我希望在两个箱线图中都有相似的y轴。由于范围不同,我尝试使用logscale,希望它能产生良好的可读性:

subplot(1,2,1)
boxplot(DEM)
set(gca, 'YScale', 'log')
ylim([0 1750])
subplot(1,2,2)
boxplot(DEM2)
set(gca, 'YScale', 'log')
ylim([0 1750])
但是Matlab忽略了负值


有人知道我怎么解决这个问题吗?是否有另一种方法可以通过Y轴相似但可读性良好的方式将两个数据集与箱线图进行比较?

对数标度没有负值。零的值在无穷远处,如下所示。也许你可以把两个原木轴缝在一起或者其他什么东西,但是我建议你使用其他的策略。比较两个不同范围的东西应该会发现一个盒子很小。这没什么错。你的第一个数字是正确的。除了异常值。当异常值太多时,绘制它们是毫无意义的。离群值将人们的注意力从重要的数据上移开,这些数据是通过框和胡须抽象出来的。根据定义,异常值应该是罕见的。考虑把胡须一直拉到最大值和最小值。这样,您可以显示数据的0、25、50、75和100个百分位数。现在的胡须没有意义。