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 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 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.
Matplotlib 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 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() .
Color 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 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 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() .
Subparcela 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 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.
Eje 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() .
Marcas 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() .
Pandas del segundo eje y de Matplotlib