Cambiar el tama帽o de fuente en Matplotlib

     

    Introducci贸n

    Matplotlib es una de las bibliotecas de visualizaci贸n de datos m谩s utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalizaci贸n: puede modificar casi cualquier elemento de su jerarqu铆a de objetos.

    En este tutorial, veremos c贸mo cambiar el tama帽o de fuente en Matplotlib.

    Cambiar el tama帽o de fuente en Matplotlib

    Hay algunas formas en que puede cambiar el tama帽o de las fuentes en Matplotlib. Puede configurar el fontsize argumento, cambiar la forma en que Matplotlib trata las fuentes en general, o incluso cambiar el tama帽o de la figura.

    Primero creemos un diagrama simple en el que queremos cambiar el tama帽o de las fuentes:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    fig.suptitle('Sine and cosine waves')
    plt.xlabel('Time')
    plt.ylabel('Intensity')
    leg = ax.legend()
    
    plt.show()
    

    Cambiar tama帽o de fuente usando tama帽o de fuente

    Probemos la opci贸n m谩s sencilla. Cada funci贸n que se ocupa de texto, como suptitle(), xlabel() y todas las dem谩s funciones textuales aceptan un argumento – fontsize.

    Revisemos el c贸digo de antes y especifiquemos un fontsize para estos elementos:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    fig.suptitle('Sine and cosine waves', fontsize=20)
    plt.xlabel('Time', fontsize=16)
    plt.ylabel('Intensity', fontsize=16)
    leg = ax.legend()
    
    plt.show()
    

    Aqu铆, hemos configurado el fontsize Para el suptitle as铆 como las etiquetas de tiempo e intensidad. Ejecutar este c贸digo produce:

    Tambi茅n podemos cambiar el tama帽o de la fuente en la leyenda agregando el prop argumento y estableciendo el tama帽o de fuente all铆:

    leg = ax.legend(prop={"size":16})
    

    Esto cambiar谩 el tama帽o de fuente, que en este caso tambi茅n mueve la leyenda hacia la parte inferior izquierda para que no se superponga con los elementos de la parte superior derecha:

    Sin embargo, aunque podemos establecer cada tama帽o de fuente de esta manera, si tenemos muchos elementos textuales y solo queremos un tama帽o general uniforme, este enfoque es repetitivo.

    En tales casos, podemos pasar a configurar el tama帽o de fuente de forma global.

    Cambiar el tama帽o de fuente globalmente

    Hay dos formas de establecer el tama帽o de fuente de forma global. Queremos configurar el font_size par谩metro a un nuevo tama帽o. Podemos llegar a este par谩metro a trav茅s de rcParams['font.size'].

    Una forma es modificarlos directamente:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    plt.rcParams['font.size'] = '16'
    
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    plt.xlabel('Time')
    plt.ylabel('Intensity')
    fig.suptitle('Sine and cosine waves')
    leg = ax.legend()
    
    plt.show()
    

    Tienes que configurarlos antes del plot() llamada a la funci贸n ya que si intenta aplicarlos posteriormente, no se realizar谩n cambios. Este enfoque cambiar谩 todo lo especificado como fuente por el font objeto kwargs.

    Sin embargo, cuando ejecutamos este c贸digo, es obvio que las marcas xey, ni las etiquetas xey no cambiaron de tama帽o:

    Dependiendo de la versi贸n de Matplotlib que est茅 ejecutando, no podr谩 cambiarlos con los par谩metros rc. Usar铆as axes.labelsize y xtick.labelsize/ytick.labelsize para ellos respectivamente.

    Si configurar estos no cambia el tama帽o de las etiquetas, puede utilizar el set() funci贸n pasando en un fontsize o usa el set_fontsize() funci贸n:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    # Set general font size
    plt.rcParams['font.size'] = '16'
    
    # Set tick font size
    for label in (ax.get_xticklabels() + ax.get_yticklabels()):
    	label.set_fontsize(16)
    	
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    plt.xlabel('Time', fontsize=16)
    plt.ylabel('Intensity', fontsize=16)
    
    fig.suptitle('Sine and cosine waves')
    leg = ax.legend()
    
    plt.show()
    

    Esto resulta en:

    Conclusi贸n

    En este tutorial, hemos repasado varias formas de cambiar el tama帽o de las fuentes en Matplotlib.

    Si est谩 interesado en la visualizaci贸n de datos y no sabe por d贸nde empezar, aseg煤rese de consultar nuestro libro sobre Visualizaci贸n de datos en Python.

    Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiar谩 a trav茅s de la manipulaci贸n simple de datos con Pandas, cubrir谩 bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrar谩 c贸mo aprovechar las bibliotecas declarativas y experimentales como Altair.

     

    Visualizaci贸n de datos en Python

    隆Comprenda mejor sus datos con visualizaciones! Con 340 p谩ginas, aprender谩 los entresijos de la visualizaci贸n de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y m谩s.

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *