Creación de ejes discontinuos en Matplotlib
Introducción:
Al crear gráficos con Matplotlib, Normalmente se utiliza el eje x continuo. Sin embargo, puede haber casos en los que se desee un eje discontinuo, donde se produzca un espacio o un salto en los valores del eje x. Esto puede resultar útil para mostrar datos con valores faltantes o escasamente distribuidos.
Uso de subtramas:
Un método para crear un eje discontinuo es utilizar subtramas. A cada subtrama se le puede asignar un rango diferente de valores del eje x, lo que genera un espacio entre las subtramas. Aquí hay un ejemplo simple:
import matplotlib.pyplot as plt x1 = np.linspace(0, 5, 100) y1 = np.sin(x1) x2 = np.linspace(10, 15, 100) y2 = np.cos(x2) plt.subplot(1, 2, 1) plt.plot(x1, y1) plt.subplot(1, 2, 2) plt.plot(x2, y2) plt.show()
Transformación de eje personalizada:
Otro método para crear un eje discontinuo es utilizar una transformación de eje personalizada. Al definir una nueva clase de transformación, podemos especificar cómo se asignan los datos al eje. El siguiente código demuestra este enfoque:
import matplotlib.pyplot as plt from matplotlib.transforms import Transform from matplotlib.ticker import LogLocator class DiscontinuousTransform(Transform): def __init__(self, breaks): Transform.__init__(self) self.breaks = breaks def transform(self, values): new_values = values.copy() for break in self.breaks: new_values[values > break] = 1 return new_values def inverted(self): return InvertedDiscontinuousTransform(self.breaks) class InvertedDiscontinuousTransform(Transform): def __init__(self, breaks): Transform.__init__(self) self.breaks = breaks def transform(self, values): new_values = values.copy() for break in self.breaks: new_values[values >= break] -= 1 return new_values def inverted(self): return DiscontinuousTransform(self.breaks) x = np.linspace(0, 10, 100) y = np.sin(x) trans = DiscontinuousTransform([5]) locator = LogLocator(base=10) locator.set_params(minor_locator=None) plt.plot(x, y, transform=trans) plt.gca().xaxis.set_major_locator(locator) plt.gca().xaxis.set_major_formatter(plt.FormatStrFormatter("%0.0f\n(pert)")) plt.show()
Conclusión:
La creación de un eje discontinuo en Matplotlib se puede lograr mediante subtramas o transformaciones de eje personalizadas. El enfoque de transformación personalizada proporciona más flexibilidad y control sobre el comportamiento del eje. Ambos métodos pueden resultar eficaces para visualizar datos con lagunas o discontinuidades.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3