matplotlib stringhe come etichette sull’asse x

Sto costruendo un piccolo strumento per l’analisi dei dati e sono arrivato al punto in cui devo tracciare i dati preparati. Il codice prima che questo produce due liste di pari lunghezza.

t11 = ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55']

t12 = [173, 135, 141, 148, 140, 149, 152, 178, 135, 96, 109, 164, 137, 152, 172, 149, 93, 78, 116, 81, 149, 202, 172, 99, 134, 85, 104, 172, 177, 150, 130, 131, 111, 99, 143, 194]

Sulla base di questo, voglio costruire un istogramma con matplotlib.pal.hist. Tuttavia, ci sono un paio di problemi:
1. t11[x] e t12[x], sono collegati per ogni x. Dove t11[x] è una stringa. Esso rappresenta un certo rivelatore combinazione. Per esempio: ’01’ dice che la rilevazione è stata effettuata nel 0th segmento del primo rivelatore, e il 1 ° segmento del secondo rivelatore. Il mio obiettivo è quello di avere ogni voce t11 etichettato come un punto sull’asse x. La t12 voce sta per definire l’altezza della barra sopra il t11 voce (su una logaritmica asse y)

Come si fa a configurare un asse x?
2. Questo è tutto molto nuovo per me. Non sono riuscito a trovare tutto ciò che riguarda la documentazione. Più probabilmente perché non sapevo cosa cercare. QUINDI: c’È un nome “ufficiale” per quello che sto cercando di ottenere. Questo potrebbe aiutare anche me un sacco.

OriginaleL’autore Sasha | 2011-09-26

4 Replies
  1. 54

    Utilizzare il xticks comando.

    import matplotlib.pyplot as plt
    
    t11 = ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15',
           '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35',
           '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55']
    
    t12 = [173, 135, 141, 148, 140, 149, 152, 178, 135, 96, 109, 164, 137, 152,
           172, 149, 93, 78, 116, 81, 149, 202, 172, 99, 134, 85, 104, 172, 177,
           150, 130, 131, 111, 99, 143, 194]
    
    
    plt.bar(range(len(t12)), t12, align='center')
    plt.xticks(range(len(t12)), t11, size='small')
    plt.show()
    Perché si utilizza len(t12) in entrambe le linee? Non dovrebbe essere len(t11)?
    Generalmente sì, hai ragione. Quando si chiama xticks in genere si desidera che il numero di zecche per essere uguale al numero di etichette. In questo caso però la lunghezza di entrambe le liste è lo stesso, in modo che non importa.

    OriginaleL’autore Stephen Terry

  2. 17

    Per l’object oriented API di matplotlib una possibile trama di testo personalizzato sul x-ticks di un axis con il seguente codice:

    x = np.arange(2,10,2)
    y = x.copy()
    x_ticks_labels = ['jan','feb','mar','apr','may']
    
    fig, ax = plt.subplots(1,1) 
    ax.plot(x,y)
    
    # Set number of ticks for x-axis
    ax.set_xticks(x)
    # Set ticks labels for x-axis
    ax.set_xticklabels(x_ticks_labels, rotation='vertical', fontsize=18)

    matplotlib stringhe come etichette sull'asse x

    OriginaleL’autore David Alvarez

  3. 3

    In matplotlib gergo, si sta cercando un modo per impostare i segni di graduazione.

    Sembra che non è possibile raggiungere questo obiettivo con la pyplot.hist di scelta rapida. Avrete bisogno di costruire la vostra immagine, passo passo, invece. C’è già una risposta qui su Stack Overflow per la domanda che è molto simile al tuo e dovrebbe iniziare: Matplotlib – etichetta di ogni bin

    OriginaleL’autore Ludovico Fischer

  4. 0

    In primo luogo è necessario accedere all’asse oggetto:

    fig, ax = plt.subplots(1,1)

    quindi:

    ax.set_yticks([x for x in range(-10,11)])
    ax.set_yticklabels( ['{0:2d}'.format(abs(x)) for x in range(-10, 11)])

    OriginaleL’autore Colin Dickie

Lascia un commento