Matplotlib gjør skriftstørrelsen på kryssetikettene mindre

I en matplotlib-figur, hvordan kan jeg gjøre skriftstørrelsen for kryssetikettene ved hjelp av ax1.set_xticklabels() mindre?

Videre, hvordan kan man rotere den fra horisontal til vertikal?

Det finnes faktisk en enklere måte. Jeg fant nettopp:

import matplotlib.pyplot as plt
# We prepare the plot  
fig, ax = plt.subplots()

# We change the fontsize of minor ticks label 
ax.tick_params(axis='both', which='major', labelsize=10)
ax.tick_params(axis='both', which='minor', labelsize=8)

Dette svarer imidlertid bare på størrelsen på label-delen av spørsmålet ditt.

Kommentarer (0)
Løsning

Vær oppmerksom på at nyere versjoner av MPL har en snarvei for denne oppgaven. Et eksempel er vist i det andre svaret på dette spørsmålet: https://stackoverflow.com/a/11386056/42346

Koden nedenfor er for illustrasjonsformål og er ikke nødvendigvis optimalisert.

import matplotlib.pyplot as plt
import numpy as np

def xticklabels_example():
    fig = plt.figure() 

    x = np.arange(20)
    y1 = np.cos(x)
    y2 = (x**2)
    y3 = (x**3)
    yn = (y1,y2,y3)
    COLORS = ('b','g','k')

    for i,y in enumerate(yn):
        ax = fig.add_subplot(len(yn),1,i+1)

        ax.plot(x, y, ls='solid', color=COLORS[i]) 

        if i != len(yn) - 1:
            # all but last 
            ax.set_xticklabels( () )
        else:
            for tick in ax.xaxis.get_major_ticks():
                tick.label.set_fontsize(14) 
                # specify integer or one of preset strings, e.g.
                #tick.label.set_fontsize('x-small') 
                tick.label.set_rotation('vertical')

    fig.suptitle('Matplotlib xticklabels Example')
    plt.show()

if __name__ == '__main__':
    xticklabels_example()

Kommentarer (5)

Du kan også endre etikettvisningsparametere som skriftstørrelse med en linje som denne:

zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()]
Kommentarer (1)