presentan histogramas en diferentes colores – matlab

Estoy tratando de presentar dos histogramas, y quiero que cada uno de ellos a ser en un color diferente. digamos, por ejemplo, uno rojo y uno azul. hasta ahora me menaged el cambio de los colores de ambos, pero sólo en el mismo color.

este es el código

close all  
b=-10:1:10;
x=randn(10^5,1);  
x=(x+5)*3;  
y=randn(1,10^5);  
y=(y+2)*3;  
hist(x,100)  
hold on   
hist(y,100);  

h = findobj(gca,'Type','patch');   
set(h,'FaceColor','r','EdgeColor','w')  
%the last two lines changes the color of both hists.
InformationsquelleAutor ariel | 2010-12-16

3 Kommentare

  1. 7

    La h en el código contiene el identificador de dos revisión de los objetos. Intente asignar un color a cada uno por separado:

    %# ...
    h = findobj(gca, 'Type','patch');
    set(h(1), 'FaceColor','r', 'EdgeColor','w')
    set(h(2), 'FaceColor','b', 'EdgeColor','w')
  2. 3

    Una opción es llamar a hist en ambos vectores:

    hist([x(:) y(:)], 100);

    Otra opción es asignar la respuesta a un argumento de salida:

    [hx, binx] = hist(x, 100);
    [hy, biny] = hist(y, 100);

    Y de la trama en su estilo favorito/color.

  3. 1

    En MATLAB de la biblioteca estándar, hist utiliza el comando de la bar para hacer su trazado, pero el uso de bar, de por sí, da mucha más flexibilidad. Pasando a bar una matriz cuyas columnas son cada histograma bin cuenta las parcelas de cada uno de los histogramas en un color diferente, que es exactamente lo que usted desea. He aquí un ejemplo de código:

    [xcounts,~] = hist(x,100);
    [ycounts,~] = hist(y,100);
    histmat = [reshape(xcounts,100,1) reshape(ycounts,100,1)];
    bar(histmat, optionalWidthOfEachBarInPixelsForOverlap);

    Documentación para bar es aquí.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea