如何解决 probplot,Matlab 中重叠的刻度标签?

How to resolve the overlapping Ytick labels in probplot, Matlab?

我正在尝试使用 matlab 函数 probplot 绘制对数正态分布。但是当我这样做的时候,我在 yticklabels 中得到了重叠。

我需要那么大的字体大小 (40)。有没有办法通过提供自定义 yticklabels esp 来消除重叠。与 probplot 功能?请注意,probplot 的 yticklabels 并不简单。

请在下面找到测试数据link

代码如下:

TestData=importdata('TestData.txt');

h1=probplot('lognormal',TestData,'noref');
set(h1(1),'marker','d','color','b','markersize',8,'markerfacecolor','b');
set(gca,'fontsize',40);

似乎 y 轴上的 labels 不直接是 values那个轴

>> get(gca, 'ytick')
ans =
   -3.7190   -1.6449   -1.2816   -0.6745         0    0.6745    1.2816 ...

而是

>> normcdf(get(gca, 'ytick'))
ans =
    0.0001    0.0500    0.1000    0.2500    0.5000    0.7500    0.9000 ...    

(数字 -1.2816 泄露了 normcdf was involved). Therefore, the labels can be obtained from the values using norminv。例如,

>> norminv(.0001)
ans =
   -3.7190

因此,要指定一组所需的值,请在创建绘图后使用它:

desired_values = [.0001 .005 .05 .25 .75 .95 .995 .9999];
set(gca, 'ytick', norminv(desired_values), 'yticklabels', desired_values);

例子

TestData = exp(randn(1,1e5)); % example data

Before(即从您的代码中获得的图):

After(即在上图使用我的代码):