es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Matlab: Histogramas combinados

Intento combinar con “hold on” varios histogramas que obtengo de varias figuras. Las figuras tienen el mismo eje X que he definido. Sin embargo, no puedo mostrarlos. ¿Tendrías una solución?

close all;
clearvars;

xlimArr = [0 0.05];

dataset = xlsread('DEHS_REF.xlsx', 'Feuil1', 'A2:B47');

h0=hgload('DonnéesLOACn°0DEHS1');
h1=hgload('DonnéesLOACn°1DEHS1');
h2=hgload('DonnéesLOACn°2DEHS1');
h3=hgload('DonnéesLOACn°3DEHS1');

g0 = findobj(h0, 'type', 'Histogram');
g1 = findobj(h0, 'type', 'Histogram');
g2 = findobj(h0, 'type', 'Histogram');
g3 = findobj(h0, 'type', 'Histogram');

hist_chanel1  = g0(2);
hist_chanel2  = g1(2);
hist_chanel3  = g2(2);
hist_chanel4  = g3(2);

figure();

histogram(hist_chanel1.Data, 'BinWidth', hist_chanel1.BinWidth);
hold on 
histogram(hist_chanel2.Data, 'BinWidth', hist_chanel2.BinWidth);
histogram(hist_chanel3.Data, 'BinWidth', hist_chanel3.BinWidth);
histogram(hist_chanel4.Data, 'BinWidth', hist_chanel4.BinWidth);
hold off

xlabel('Valor [V]');
ylabel('Cantidad de picos');
title('Distribución de picos del generador de aerosoles (amplitud)');
xlim(xlimArr);
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para combinar múltiples histogramas de diferentes figuras con el mismo eje X, primero puedes cargar los histogramas utilizando la función hgload y luego extraer los datos de los histogramas utilizando la función findobj con el argumento "type", "Histogram". Una vez que hayas extraído los datos de los histogramas, puedes trazarlos en una sola figura utilizando el comando hold on entre las llamadas a histogram. Aquí tienes un ejemplo de código que demuestra esto:

    h1 = hgload('figure1.fig'); % carga el histograma desde la figura1
    h2 = hgload('figure2.fig'); % carga el histograma desde la figura2
    
    % extrae los datos de los histogramas de las figuras cargadas
    hist1 = findobj(h1, "type", "Histogram");
    hist2 = findobj(h2, "type", "Histogram");
    
    % traza los histogramas en una sola figura
    figure();
    hold on
    histogram(hist1.Data, "BinWidth", hist1.BinWidth);
    histogram(hist2.Data, "BinWidth", hist2.BinWidth);
    hold off
    
    xlabel("Etiqueta del eje X");
    ylabel("Etiqueta del eje Y");
    title("Histogramas combinados");
    

    Asegúrate de utilizar la función xlim después de trazar todos los histogramas, ya que establece los límites del eje X.

Comments are closed.