Как разрешить перекрывающиеся метки Ytick в пробплоте, Matlab? - PullRequest
1 голос
/ 22 сентября 2019

Я пытаюсь построить нормальное распределение журнала, используя функцию matlab, probplot.Но в то время как я делаю, я получаю перекрытие в yticklabels enter image description here.

Мне понадобится такая большая часть шрифта (40).Есть ли способ устранить наложения путем предоставления пользовательских yticklabels ESP.с функцией пробплота?Обратите внимание, что yticklabels для probplot не является простым.

Пожалуйста, найдите тестовые данные в следующей ссылке

Код выглядит следующим образом:

TestData=importdata('TestData.txt');

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

1 Ответ

3 голосов
/ 23 сентября 2019

Похоже, что метки на оси y не являются непосредственно значениями на этой оси

>> 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 было задействовано).Поэтому метки могут быть получены из значений, используя 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

До (то есть график, полученный из вашего кода):

enter image description here

После (то есть, используя мой код на графике выше):

enter image description here

...