Tengo 5 conjuntos de datos a partir de la cual quiero crear 5 histogramas. En el momento en que todo va en una gráfica. ¿Cómo puedo cambiar esto para que se produce a separar los dos gráficos?

Por simplicidad, en mi ejemplo a continuación voy a mostrar solo dos histogramas. Estoy buscando en la distribución de ángulo a en 3 momentos diferentes y lo mismo para el ángulo de b.

n, bins, patches = plt.hist(a)
plt.xlabel('Angle a (degrees)') 
plt.ylabel('Frequency')
n, bins, patches = plt.hist(b)
label='2pm,3pm,4pm'
loc = 'center'
plt.legend(label, loc)

plt.xlabel('Angle b(degrees)')        
plt.title('Histogram of b')
plt.ylabel('Frequency')
label='2pm,3pm,4pm'
loc = 'center'
plt.legend(label, loc)

plt.show()
InformationsquelleAutor Freya Lumb | 2014-08-21

2 Comentarios

  1. 9

    Este es probablemente cuando usted desea utilizar matplotlib del interfaz orientada a objetos. Hay un par de maneras que usted podría manejar esto.

    Primero, usted podría querer de cada parcela, en una forma completamente separada de la figura. En cuyo caso, matplotlib le permite mantener un seguimiento de las diversas figuras.

    import numpy as np
    import matplotlib.pyplot as plt
    
    a = np.random.normal(size=200)
    b = np.random.normal(size=200)
    
    fig1 = plt.figure()
    ax1 = fig1.add_subplot(1, 1, 1)
    n, bins, patches = ax1.hist(a)
    ax1.set_xlabel('Angle a (degrees)')
    ax1.set_ylabel('Frequency')
    
    fig2 = plt.figure()
    ax2 = fig2.add_subplot(1, 1, 1)
    n, bins, patches = ax2.hist(b)
    ax2.set_xlabel('Angle b (degrees)')
    ax2.set_ylabel('Frequency')

    O, usted puede dividir la figura en varias subtramas y trazar un histograma de cada una de ellas. En cuyo caso matplotlib le permite mantener un seguimiento de las distintas subparcelas.

    fig = plt.figure()
    ax1 = fig.add_subplot(2, 1, 1)
    ax2 = fig.add_subplot(2, 1, 2)
    
    n, bins, patches = ax1.hist(a)
    ax1.set_xlabel('Angle a (degrees)')
    ax1.set_ylabel('Frequency')
    
    n, bins, patches = ax2.hist(b)
    ax2.set_xlabel('Angle b (degrees)')
    ax2.set_ylabel('Frequency')

    Respuesta a esta pregunta explicar los números en add_subplot.

  2. 4

    Recientemente he utilizado los pandas para hacer la misma cosa. Si estás leyendo desde csv/texto, entonces podría ser muy fácil.

    import pandas as pd
    data = pd.read_csv("yourfile.csv") # columns a,b,c,etc
    data.hist(bins=20)

    Es realmente terminando el matplotlib en una llamada, pero funciona muy bien.

Dejar respuesta

Please enter your comment!
Please enter your name here