.class { align:center; }
Matplotlib

Eje y secundario de Matplotlib [Guía completa]

En este tutorial de Python, analizaremos el eje Y secundario de Matplotlib en Python. Aquí cubriremos diferentes ejemplos relacionados con el eje y secundario usando matplotlib. Y también cubriremos los siguientes temas:

LÍMITES SECUNDARIOS DEL EJE Y DE MATPLOTLIB

Aquí aprenderemos a establecer los límites de los ejes del eje y secundario usando matplotlib. En matplotlib tenemos diferentes funciones para configurar los límites de los ejes.

Las funciones son las siguientes:

  • función ylim()
  • función set_top()
  • función eje()

Ahora, veamos diferentes ejemplos relacionados con esto:

Ejemplo 1

Aquí, trazaremos un gráfico con el eje y secundario y luego estableceremos su límite usando la función ylim() .

# Import Library

import numpy as np
import matplotlib.pyplot as plt

# Define Data

x = np.arange(200)
y = np.cos(x)

# Plot Graph

fig, ax1 = plt.subplots()
ax1.plot(x, y)

# Define Labels

ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y1-axis')

# Twin Axes

ax2 = ax1.twinx()
ax2.set_ylabel('Y2-axis')

# Set limit 

plt.ylim(-1, 1)

# Display

plt.show()
  • En primer lugar, importe las bibliotecas necesarias, como matplotlib.pyplot y numpy .
  • A continuación, defina las coordenadas de los datos utilizando la función arange () y cos() de numpy.
  • Luego, use una función subplot() que devuelva la tupla que contiene la figura y el objeto de los ejes.
  • Trace un gráfico correspondiente al objeto del eje 1 usando la función plot() .
  • Defina las etiquetas de los ejes 1, utilizando las funciones set_xlabel() y set_ylabel() .
  • Luego, cree un eje y secundario usando la función twinx() .
  • Para establecer la etiqueta en el eje y secundario, utilice la función set_ylabel() .
  • Luego, use la función plt.ylim() para establecer el límite del eje del eje y secundario.
  • Para mostrar el gráfico, utilice la función show() .

Nota: Utilice la función ylim() después de la función twinx() o después del objeto de ejes del eje y secundario. Si usa esta función en cualquier otro lugar, cambiará los límites del eje y primario.

Límites secundarios del eje y de Matplotlib

Ejemplo #2

Aquí vamos a trazar un gráfico con el eje y secundario y luego estableceremos su límite usando la función set_ylim().

# Import Library

import numpy as np
import matplotlib.pyplot as plt

# Define Data

x = np.arange(50)
y = np.sin(x)

# Plot Graph

fig, ax1 = plt.subplots()
ax1.plot(x, y)

# Define Labels

ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y1-axis')

# Twin Axes

ax2 = ax1.twinx()
ax2.set_ylabel('Y2-axis')

# Set limit 

ax2.set_ylim(-1, 1)

# Display

plt.show()
  • Importar biblioteca numpy para la creación de datos.
  • Importe la biblioteca matplotlib.pyplot para la visualización de datos.
  • Defina las coordenadas xey usando las funciones arange() y sin() de numpy.
  • Luego, use una función subplot() que devuelva la tupla que contiene la figura y el objeto de los ejes.
  • Trace el gráfico usando la función plot() del objeto del eje 1.
  • Luego use la función set_xlabel() y set_ylabel() para agregar etiquetas en los ejes.
  • Utilice la función twinx() para crear un eje y secundario.
  • Para establecer el límite del eje y secundario, use la función set_ylim() correspondiente al objeto del eje y secundario.
  • Para mostrar el gráfico, utilice la función show() .

Límite del eje Matplotlib del eje y secundario

Ejemplo #3

Aquí vamos a trazar un gráfico con el eje y secundario y luego estableceremos su límite usando la función axis().

# Import Library

import numpy as np
import matplotlib.pyplot as plt

# Define Data

x = np.arange(50)
y = np.cos(x*50)

# Plot Graph

fig, ax1 = plt.subplots()
ax1.plot(x, y)

# Define Labels

ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y1-axis')

# Twin Axes

ax2 = ax1.twinx()
ax2.set_ylabel('Y2-axis')

# Set limit 

plt.axis([None, None, -1, 1])

# Display

plt.show()
  • Importe bibliotecas numpy y matplotlib.pyplot .
  • A continuación, defina las coordenadas de los datos.
  • Para trazar el gráfico, utilice la función plot() correspondiente al objeto del eje 1.
  • Para crear un eje y secundario, use la función twinx() .
  • Para establecer el límite del eje y secundario, usamos la función plt.axis() . Aquí establecemos los valores de xmin y xmax en Ninguno ya que no queremos cambiar el límite del eje x.

rango del eje matplotlib del eje y secundarioRango del eje Matplotlib del eje y secundario

Nota: Utilice la función axis() después de la función twinx() o después del objeto de ejes del eje y secundario. Si usa esta función en cualquier otro lugar, cambiará los límites del eje y primario.

ETIQUETA DEL EJE Y SECUNDARIO DE MATPLOTLIB

Aquí aprenderemos a agregar una etiqueta en el eje y secundario usando matplotlib. Podemos usar la función ylabel() o la función set_ylabel() para agregar una etiqueta en el eje y.

Veamos ejemplos relacionados con esto:

Ejemplo 1

En este ejemplo, agregamos una etiqueta en el eje y secundario usando el método ylabel() .

# Import Library

import numpy as np 
import matplotlib.pyplot as plt 
  
# Define Data

x = np.arange(0, 15, 0.2)
data_1 = np.sin(x)
data_2 = np.exp(x) 
  
# Create Plot

fig, ax1 = plt.subplots() 
  
ax1.set_xlabel('X-axis') 
ax1.set_ylabel('Primary-axis') 
ax1.plot(x, data_1, color="red") 
  
# Adding Twin Axes

ax2 = ax1.twinx() 
ax2.plot(x, data_2, color="blue")  

# Add label

plt.ylabel('Secondary-axis') 

# Show plot

plt.show()
  • Importe las bibliotecas necesarias, como numpy y matplotlib.pyplot .
  • Para definir las coordenadas de los datos, use la función arange() , sin() y exp() de numpy.
  • Luego, use una función subplots() que devuelva la tupla que contiene la figura y el objeto del eje 1.
  • Después de esto, agregue la etiqueta en el eje x y el eje y primario, use las funciones set_xlabel() y set_ylabel() correspondientes al objeto de ejes 1.
  • Luego, cree un eje y secundario usando la función twinx() .
  • Para trazar un gráfico, use la función plot() .
  • Para agregar una etiqueta en el eje y secundario, use la función ylabel() . La función Cuidar una cosa debe definirse después de la creación del objeto de ejes 2.
  • Para mostrar el gráfico, usamos la función show() .

etiqueta del eje y secundario de matplotlibEtiqueta del eje y secundario de Matplotlib

Ejemplo #2

En este ejemplo, agregamos una etiqueta en el eje y secundario usando el método set_ylabel() .

# Import Library

import numpy as np 
import matplotlib.pyplot as plt 
  
# Define Data

x = np.arange(0, 15, 0.2)
data_1 = np.sin(x)
data_2 = np.exp(x) 
  
# Create Plot

fig, ax1 = plt.subplots() 
  
ax1.set_xlabel('X-axis') 
ax1.set_ylabel('Primary-axis') 
ax1.plot(x, data_1, color="red") 
  
# Adding Twin Axes

ax2 = ax1.twinx() 
ax2.plot(x, data_2, color="blue")  

# Add label

plt.ylabel('Secondary-axis') 

# Show plot

plt.show()
  • Importe las bibliotecas necesarias, como numpy y matplotlib.pyplot .
  • A continuación, usamos las funciones arange() , sin() y exp() para definir las coordenadas de los datos.
  • Para crear el segundo eje y, use la función twinx() .
  • Para trazar el gráfico, use la función plot() .
  • Para agregar una etiqueta en el eje y secundario, usamos la función set_ylabel() correspondiente al objeto de ejes gemelos.
Te puede interesar:  Tutorial de gráfico circular de Matplotlib

matplotlib segunda etiqueta del eje yMatplotlib segunda etiqueta del eje y

ESCALA LOGARÍTMICA DEL EJE Y SECUNDARIO DE MATPLOTLIB

Aquí aprenderemos a crear un eje y secundario con escala logarítmica usando matplotlib.

Veamos un ejemplo:

# Import libraries

import matplotlib.pyplot as plt
import numpy as np

# Set figure size

fig = plt.figure(figsize=(6,5))

# Create subplot

ax = fig.add_subplot(111)

# Create secondary axes

ax2 = ax.twinx()

# Define Data 

x = np.random.rand(50)
y = np.random.rand(50)
y2 = data = [10**i for i in range(50)]

# Plot graph

ax.scatter(x, y, c="b")
ax2.scatter(x, y2, c="r")

# Set second y-axis to log


ax2.set_yscale("log")

# Add labels

ax.set_ylabel("Linear axis")
ax2.set_ylabel("Logarithmic axis")

# Display

plt.show()
  • Importe la biblioteca matplotlib.pyplot .
  • Importar biblioteca numpy para la creación de datos.
  • Para establecer el tamaño de la figura, use el método figure() y pase el parámetro figsize al método para establecer el ancho y la altura del gráfico.
  • Luego, use una función add_subplot() correspondiente al objeto del eje 1.
  • Después de esto, cree el eje y secundario correspondiente al objeto del eje 2.
  • Para definir las coordenadas de los datos, utilice la función random.rand() y la función for loop y range() .
  • Para trazar el gráfico de dispersión, use la función scatter() .
  • Ahora, configure el eje y secundario en forma de escala logarítmica usando la función set_yscale() .
  • Para establecer etiquetas en los ejes y primario y secundario, usamos la función set_ylabel() con los ejes correspondientes.
  • Para mostrar el gráfico, utilice la función show() .

escala logarítmica del eje y secundario de matplotlibEscala logarítmica del eje Y secundario de Matplotlib

COLOR SECUNDARIO DEL EJE Y DE MATPLOTLIB

Aquí establecemos el color del eje y secundario usando matplotlib.

Veamos un ejemplo:

# Import Library

import numpy as np 
import matplotlib.pyplot as plt 
  
# Define Data

x = np.arange(0, 15, 0.2)
data_1 = np.sin(x)
data_2 = np.cos(x) 
  
# Create Plot

fig, ax1 = plt.subplots() 
  
ax1.set_xlabel('X-axis') 
ax1.set_ylabel('Primary-axis') 
ax1.plot(x, data_1, color="red") 
  
# Adding Twin Axes

ax2 = ax1.twinx() 
ax2.plot(x, data_2, color="blue") 

# Add label

ax2.set_ylabel('Secondary Y-axis', color="blue") 
ax2.tick_params(axis="y", color="blue", labelcolor="blue")

# Show plot

plt.show()
  • Importe bibliotecas numpy y matplotlib.pyplot .
  • A continuación, defina las coordenadas de los datos mediante las funciones arange() , sin() y cos() de numpy.
  • Cree una subtrama usando la función subplots() correspondiente al objeto de ejes 1.
  • Luego agregamos la etiqueta en el eje x y el eje y primario, usando las funciones set_xlabel() y set_ylabel() .
  • Para trazar el gráfico, usamos la función plot() .
  • Para crear un segundo eje y, usamos la función twinx() .
  • Para agregar una etiqueta en el eje y secundario, usamos la función set_ylabel() .
  • Para establecer el mismo color de la etiqueta de los ejes que la línea de trazado, pase el parámetro de color al método set_ylabel() .
  • Para establecer el mismo color de las marcas y la etiqueta de las marcas que la línea de trazado, pase el parámetro color y labelcolor al método tick_params() .

matplotlib color del eje y secundarioColor secundario del eje y de Matplotlib

MATPLOTLIB EJE Y SECUNDARIO ALINEADO 0

Aquí aprenderemos a alinear el eje y secundario a 0 usando matplotlib con el ejemplo. Para alinear el eje a 0, establecemos la parte inferior del eje y en 0.

Sintaxis:

matplotlib.pyplot.ylim(bottom=0)

También puede usar la función set_ylim() o axis() en lugar de ylim().

Veamos un ejemplo:

Aquí vamos a usar la función set_ylim() para alinear el eje y secundario a 0.

# Import Library

import pandas as pd

# Create DataFrames

df1 = pd.DataFrame({'year': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                    'profit': [80, 60, 50, 95, 75, 63, 35, 90, 
                               68, 78]})

df2 = pd.DataFrame({'year': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                    'loss': [20, 40, 50, 5, 25, 37, 65, 10, 32, 
                             22]})

# Print

print(df1)
print('\n')
print(df2)
  • Para crear un marco de datos, primero debemos importar una biblioteca de pandas .
  • Generamos marcos de datos con el método DataFrame() .
  • Después de eso, mostramos ambos marcos de datos usando la función print() .

matplotlib eje y secundario alinear 0Matplotlib eje y secundario alineado 0

# Import Library

import matplotlib.pyplot as plt

# define subplots

fig,ax = plt.subplots()

# plot

ax.plot(df1.year, df1.profit, color="slategrey", marker="o", 
        linewidth=3)

# add x-axis label

ax.set_xlabel('Year')

# add primary y-axis label

ax.set_ylabel('Profit')

# define second y-axis

ax2 = ax.twinx()

# plot

ax2.plot(df2.year, df2.loss, color="orange", marker="o", 
         linewidth=3)

# Align to 0

ax2.set_ylim(bottom=0)

# add second y-axis label


ax2.set_ylabel('Loss')

# Display

plt.show()
  • Para la visualización de datos, importe la biblioteca matplotlib.pyplot .
  • Cree una subtrama llamando a la función subplots() en el objeto del eje.
  • La función plot() se utiliza para crear un gráfico de líneas.
  • También pasamos color , marcador y ancho de línea como parámetros para mejorar la trama.
  • La función set_xlabel() se usa para establecer la etiqueta en el eje x.
  • La función set_ylabel() se utiliza para establecer la etiqueta en el eje y principal.
  • Usamos la función set_ylim() con el argumento inferior establecido en 0 para alinear el eje secundario en 0.
  • La función set_ylabel() , que corresponde al objeto de ejes 2, se usa para establecer la etiqueta en el eje y secundario.
  • La función show() se utiliza para mostrar el gráfico.

matplotlib alinea el eje y secundario a 0Matplotlib alinea el eje y secundario a 0

SUBPARCELA SECUNDARIA DEL EJE Y DE MATPLOTLIB

En este tutorial de matplotlib, aprenderemos a compartir el eje Y secundario entre subparcelas.

Veamos ejemplos relacionados con esto:

Ejemplo 1

Aquí agregamos un eje y secundario a la subparcela específica.

# Import Library

import numpy as np
import matplotlib.pyplot as plt

# Define Data

x = np.arange(20)
y = np.cos(x*60)

# Define Subplot

fig, ax = plt.subplots(2, figsize=(8,6))

# Plot

ax[0].plot(x, y)

# Define Labels

ax[0].set_xlabel('X-axis')
ax[0].set_ylabel('Y-axis')

# Twin Axes

ax1 = ax[1].twinx()

# Plot

ax[1].plot(x,y)

# Add Labels

ax[1].set_ylabel('Primary Y-axis')
ax1.set_ylabel('Secondary Y-axis')

# Display

plt.show()
  • Importar biblioteca numpy para la creación de datos.
  • Importe la biblioteca matplotlib.pyplot para la visualización de datos.
  • Para definir las coordenadas de datos, use arange() y cos() método de numpy.
  • Después de esto, crea una subtrama usando el método subplots() .
  • Luego trace el gráfico de líneas, usando la función plot() .
  • Para establecer la etiqueta de los ejes, use el método set_xlabel() y set_ylabel() .
  • Para crear un eje y gemelo en la segunda gráfica, use la función twinx() .
  • La función ax1.set_ylabel() se usa para agregar una etiqueta secundaria del eje y.
  • Para mostrar la figura, usamos el método show() .
Te puede interesar:  Gráfico de superficie 2d de Matplotlib

subtrama del eje y secundario de matplotlibSubparcela secundaria del eje y de Matplotlib

HISTOGRAMA DEL EJE Y SECUNDARIO DE MATPLOTLIB

Aquí aprenderemos a crear un histograma con dos ejes y usando matplotlib.

Veamos un ejemplo:

# Import Libraries

import matplotlib.pyplot as plt
import numpy as np

# Define subplot

fig, ax = plt.subplots()

# Initialize the random number generator

np.random.seed(100)

# Define Data

data = np.random.randn(1000)

# Create histogram

ax.hist(data, bins=40)

# Second y-axis

ax2 = ax.twinx()

# Create histogram

ax2.hist(data, bins=40, density=True, cumulative=True, 
         histtype="step", color="lime")

# Display

plt.show()
  • Importar biblioteca numpy para la creación de datos.
  • Importe matplotlib.pyplot para la visualización de datos.
  • Luego, use una función subplot() que devuelva la tupla que contiene la figura y el objeto de los ejes.
  • Luego, el generador de números aleatorios se inicializa utilizando el método seed() . Para generar un número aleatorio, el generador de números aleatorios requiere un valor inicial conocido como valor semilla.
  • Luego, la función random.rand() se usa para generar una matriz con la forma requerida y los valores aleatorios.
  • Crea un histograma usando la función hist() .
  • A continuación, cree el segundo eje y usando la función twinx() .
  • Luego crea el histograma correspondiente a twinx, usando la función hist() .
  • Luego pasamos los siguientes parámetros a la función hist() para glorificar la trama
    • densidad: especifique la densidad de los contenedores.
    • acumulativo: si es verdadero, se crea un histograma, con cada contenedor que contiene los recuentos en ese contenedor, así como todos los contenedores para valores más pequeños. El número total de puntos de datos se muestra en el último contenedor.
    • hisstype: Establece el tipo de histograma. Lo configuramos a paso, lo que genera un diagrama de líneas.
    • color: especifique el color.

histograma del eje y secundario de matplotlibHistograma del eje Y secundario de Matplotlib

EJE Y SECUNDARIO DE DISPERSIÓN DE MATPLOTLIB

Aquí aprenderemos a crear dispersión con dos ejes y usando matplotlib.

Veamos un ejemplo:

Aquí creamos un diagrama de dispersión con dos ejes y.

# Import Library

import numpy as np 
import matplotlib.pyplot as plt 
  
# Define Data

name = ['Ava', 'Noah', 'Charlotte', 'Robert', 'Patricia']
weight_kg = [45, 60, 50, 75, 53]
height_cm = [162, 175, 155, 170, 168]
  
# Create Plot

fig, ax1 = plt.subplots() 

# Add labels

ax1.set_xlabel('X-axis') 
ax1.set_ylabel('Primary Y-axis') 
ax1.scatter(name, weight_kg ,color="red") 
  
# Adding Twin Axes

ax2 = ax1.twinx() 
ax2.scatter(name, height_cm, color="blue") 

# Add label at second y-axis

ax2.set_ylabel('Secondary Y-axis') 

# Show plot

plt.show()
  • Importe las bibliotecas necesarias, a saber, numpy y matplotlib.pyplot .
  • Después de eso, debe definir las coordenadas de datos para el trazado.
  • Luego use la función subplots() para obtener una tupla con los objetos figure y axes.
  • Use la función set_xaxis() para agregar una etiqueta al eje x.
  • La función set_yaxis() se usó para agregar etiquetas a los ejes y primario y secundario, respectivamente.
  • Utilice el método scatter() para crear un gráfico de dispersión.
  • Utilice la función show() para mostrar el gráfico.

matplotlib dispersión eje y secundarioEje y secundario de dispersión de Matplotlib

MARCAS SECUNDARIAS DEL EJE Y DE MATPLOTLIB

Aquí aprenderemos a establecer marcas en el eje y secundario usando matplotlib con la ayuda de un ejemplo.

Veamos ejemplos:

# Import Library

import numpy as np 
import matplotlib.pyplot as plt 

# Subplot

fig, ax1 = plt.subplots() 
  
# Define Data

x = np.linspace(0, 5 * np.pi, 150)
data_1 = np.sin(x)
data_2 = np.cos(x)
  
# Create Plot
  
ax1.set_xlabel('X-axis') 
ax1.set_ylabel('Primary-axis') 
ax1.plot(x, data_1,color="r") 
  
# Adding Twin Axes

ax2 = ax1.twinx() 
ax2.plot(x, data_2) 

# Set y axis ticks and labels

ax2.set_yticks([-1,0, 1, 2, 3, 4])
ax2.set_yticklabels(['Label-1', 'Label-2', 'Label-3', 
                     'Label-4', 'Label-5', 'Label-6'])

# Add label

ax2.set_ylabel('Second Y-axis') 

# Show plot

plt.show()
  • Importar biblioteca numpy para la creación de datos.
  • Importe la biblioteca matplotlib.pyplot como plt para la visualización de datos.
  • Luego use la función subplots() para obtener una tupla con los objetos figure y axes.
  • Después de esto, creamos coordenadas de datos usando funciones numpy, a saber, linspace() , sin() y cos() .
  • Para agregar etiquetas en los ejes, use las funciones set_xlabel() y set_ylabel() .
  • Para trazar un gráfico, usamos la función plot() .
  • Para crear el segundo eje y, use la función twinx() .
  • Para fijar la posición de los ticks en el eje y, usamos la  función set_yticks()  .
  • Para establecer las etiquetas de cadena en el eje y, usamos las  funciones set_yticklabels()  .

garrapatas del eje y secundario de matplotlibMarcas secundarias del eje y de Matplotlib

PANDAS DEL SEGUNDO EJE Y DE MATPLOTLIB

Aquí aprenderemos a agregar un segundo eje y usando pandas DataFrame en matplotlib.

Veamos un ejemplo:

# Import Libraries

import pandas as pd
import matplotlib.pyplot as plt
 
# Creating dataframe for plot


df1 = pd.DataFrame({'year': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                    'profit': [80, 60, 50, 95, 75, 63, 35, 90, 
                               68, 78]})

df2 = pd.DataFrame({'year': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                    'loss': [20, 40, 50, 5, 25, 37, 65, 10, 32, 
                             22]})
 
# Creating axes object and defining plot


ax = df1.plot(kind = 'line', x = 'year',
              y = 'profit', color="slategrey", marker="o")

ax2 = df2.plot(kind = 'line', x = 'year',
                   y = 'loss', secondary_y = True,
                   color="Red", marker="o",
                   ax = ax)

# Labeling axes

ax.set_xlabel('Year')
ax.set_ylabel('Profit')
ax2.set_ylabel('Loss')

# Show plot

plt.show()
  • Importe la biblioteca de pandas para crear DataFrame.
  • Importe la biblioteca matplotlib.pyplot para la visualización de datos.
  • Después de esto, cree marcos de datos para trazar usando la función DataFrame() de pandas.
  • Luego, cree objetos de ejes y defina la trama, usando la función plot() .
  • Para trazar datos en un eje y secundario, use la  palabra  clave second_y en el método df2.plot() .
  • Para etiquetar los ejes, usamos las funciones set_xlabel() y set_ylabel() con respecto a su objeto de ejes.
  • Para mostrar el gráfico, use la función show() .

matplotlib segundo eje y pandasPandas del segundo eje y de Matplotlib

Ryley Crooks

En los Estados Unidos, Python es uno de los lenguajes más utilizados. He usado Python durante mucho tiempo y he trabajado con una variedad de bibliotecas, desde Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc. Comparto contigo mi experiencia de trabajo de muchos años en el campo de la IA.

Publicaciones relacionadas

Deja una respuesta

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

Información básica sobre protección de datos
Responsable Birdie Bashirian PhD +info...
Finalidad Gestionar y moderar tus comentarios. +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios No se cederán datos a terceros, salvo obligación legal +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Botón volver arriba