Estoy tratando de trazar una distribución logarítmica normal usando la función matlab, probplot. Pero mientras lo hago, obtengo una superposición en las yticklabels ingrese la descripción de la imagen aquí  .

Necesitaría tanto tamaño de fuente (40). ¿Hay alguna forma de eliminar las superposiciones proporcionando yticklabels personalizados esp. con la función probplot? Tenga en cuenta que las etiquetas yticklabels para probplot no son sencillas.

Busque los datos de la prueba en el siguiente vínculo

El código es el siguiente :

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
Mechanician 22 sep. 2019 a las 23:40

1 respuesta

La mejor respuesta

Parece que las etiquetas en el eje y no son directamente los valores en ese eje

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

Sino más bien

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

(el número -1.2816 reveló que normcdf estuvo involucrado). Por lo tanto, las etiquetas se pueden obtener a partir de los valores mediante norminv. . Por ejemplo,

>> norminv(.0001)
ans =
   -3.7190

Por lo tanto, para especificar un conjunto de valores deseados, use esto después de que se haya creado el gráfico:

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

Ejemplo

Dejar

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

Antes (es decir, trazado obtenido de su código):

enter image description here

Después (es decir, usando mi código en el gráfico anterior):

enter image description here

3
Luis Mendo 22 sep. 2019 a las 21:21