La visualización de datos es el proceso de presentar datos en forma de gráficos o tablas. Ayuda a comprender grandes y complejas cantidades de datos con mucha facilidad. Permite a los tomadores de decisiones tomar decisiones de manera muy eficiente y también les permite identificar nuevas tendencias y patrones con mucha facilidad. También se utiliza en el análisis de datos de alto nivel para el aprendizaje automático y el análisis de datos exploratorios (EDA). La visualización de datos se puede realizar con varias herramientas como Tableau, Power BI, Python.
En este artículo, discutiremos cómo visualizar datos con la ayuda de la biblioteca Matplotlib de Python.
matplotlib
Matploptib es una biblioteca de bajo nivel de Python que se utiliza para la visualización de datos. Es fácil de usar y emula MATLAB como gráficos y visualización. Esta biblioteca se basa en la parte superior de las arrays NumPy y consta de varios gráficos como gráfico de líneas, gráfico de barras, histograma, etc. Proporciona mucha flexibilidad pero a costa de escribir más código.
Instalación
Usaremos el comando pip para instalar este módulo. Si no tiene pip instalado, consulte el artículo Descargar e instalar la última versión de pip.
Para instalar Matplotlib, escriba el siguiente comando en la terminal.
pip install matplotlib
Consulte los artículos a continuación para obtener más información sobre la configuración de un entorno con Matplotlib.
Pyplot
Pyplot es un módulo de Matplotlib que proporciona una interfaz similar a MATLAB. Matplotlib está diseñado para ser tan útil como MATLAB, con la capacidad de usar Python y la ventaja de ser gratuito y de código abierto. Cada función de pyplot realiza algún cambio en una figura: por ejemplo, crea una figura, crea un área de trazado en una figura, traza algunas líneas en un área de trazado, decora el gráfico con etiquetas, etc. Los diversos gráficos que podemos utilizar usando Pyplot son Línea Gráfico, Histograma, Dispersión, Gráfico 3D, Imagen, Contorno y Polar.
Después de conocer un resumen sobre Matplotlib y pyplot, veamos cómo crear un diagrama simple.
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) plt.show()
Producción:
Ahora veamos cómo agregar algunos elementos básicos como título, leyendas, etiquetas al gráfico.
Nota: Para obtener más información sobre Pyplot, consulte Pyplot en Matplotlib
Agregar título
El método title() en el módulo matplotlib se usa para especificar el título de la visualización representada y muestra el título usando varios atributos.
Sintaxis:
matplotlib.pyplot.title(etiqueta, fontdict=Ninguno, loc=’centro’, pad=Ninguno, **kwargs)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) # Adding title to the plot plt.title("Linear graph") plt.show()
Producción:
También podemos cambiar la apariencia del título usando los parámetros de esta función.
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) # Adding title to the plot plt.title("Linear graph", fontsize=25, color="green") plt.show()
Producción:
Nota: Para obtener más información sobre cómo agregar el título y su personalización, consulte Matplotlib.pyplot.title() en Python
Agregar etiqueta X y etiqueta Y
En términos simples, la etiqueta X y la etiqueta Y son los títulos dados al eje X y al eje Y respectivamente. Estos se pueden agregar al gráfico utilizando los métodos xlabel() e ylabel() .
Sintaxis:
matplotlib.pyplot.xlabel(xlabel, fontdict=Ninguno, labelpad=Ninguno, **kwargs)
matplotlib.pyplot.ylabel(ylabel, fontdict=Ninguno, labelpad=Ninguno, **kwargs)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) # Adding title to the plot plt.title("Linear graph", fontsize=25, color="green") # Adding label on the y-axis plt.ylabel('Y-Axis') # Adding label on the x-axis plt.xlabel('X-Axis') plt.show()
Producción:
Establecimiento de límites y etiquetas de ticks
Es posible que haya visto que Matplotlib establece automáticamente los valores y los marcadores (puntos) de los ejes X e Y, sin embargo, es posible establecer el límite y los marcadores manualmente. Las funciones xlim() e ylim() se utilizan para establecer los límites del eje X y el eje Y respectivamente. De manera similar, las funciones xticks() e yticks() se utilizan para establecer etiquetas de marca.
Ejemplo: En este ejemplo, cambiaremos el límite del eje Y y estableceremos las etiquetas para el eje X.
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) # Adding title to the plot plt.title("Linear graph", fontsize=25, color="green") # Adding label on the y-axis plt.ylabel('Y-Axis') # Adding label on the x-axis plt.xlabel('X-Axis') # Setting the limit of y-axis plt.ylim(0, 80) # setting the labels of x-axis plt.xticks(x, labels=["one", "two", "three", "four"]) plt.show()
Producción:
Adición de leyendas
Una leyenda es un área que describe los elementos del gráfico. En términos simples, refleja los datos que se muestran en el eje Y del gráfico. Generalmente aparece como el cuadro que contiene una pequeña muestra de cada color en el gráfico y una pequeña descripción de lo que significan estos datos.
El atributo bbox_to_anchor=(x, y) de la función legend() se usa para especificar las coordenadas de la leyenda, y el atributo ncol representa el número de columnas que tiene la leyenda. Su valor por defecto es 1.
Sintaxis:
matplotlib.pyplot.legend([“nombre1”, “nombre2”], bbox_to_anchor=(x, y), ncol=1)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) # Adding title to the plot plt.title("Linear graph", fontsize=25, color="green") # Adding label on the y-axis plt.ylabel('Y-Axis') # Adding label on the x-axis plt.xlabel('X-Axis') # Setting the limit of y-axis plt.ylim(0, 80) # setting the labels of x-axis plt.xticks(x, labels=["one", "two", "three", "four"]) # Adding legends plt.legend(["GFG"]) plt.show()
Producción:
Antes de continuar con Matplotlib, analicemos algunas clases importantes que se utilizarán más adelante en el tutorial. Estas clases son –
- Figura
- hachas
Nota: Matplotlib se encarga de la creación de valores predeterminados incorporados como Figura y Ejes.
Clase de figura
Considere la clase de figura como la ventana o página general en la que se dibuja todo. Es un contenedor de nivel superior que contiene uno o más ejes. Se puede crear una figura utilizando el método figure() .
Sintaxis:
class matplotlib.figure.Figure(figsize=Ninguno, dpi=Ninguno, facecolor=Ninguno, edgecolor=Ninguno, linewidth=0.0, frameon=Ninguno, subplotpars=Ninguno, tight_layout=Ninguno, constrained_layout=Ninguno)
Ejemplo:
Python3
# Python program to show pyplot module import matplotlib.pyplot as plt from matplotlib.figure import Figure # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # Creating a new figure with width = 7 inches # and height = 5 inches with face color as # green, edgecolor as red and the line width # of the edge as 7 fig = plt.figure(figsize =(7, 5), facecolor='g', edgecolor='b', linewidth=7) # Creating a new axes for the figure ax = fig.add_axes([1, 1, 1, 1]) # Adding the data to be plotted ax.plot(x, y) # Adding title to the plot plt.title("Linear graph", fontsize=25, color="yellow") # Adding label on the y-axis plt.ylabel('Y-Axis') # Adding label on the x-axis plt.xlabel('X-Axis') # Setting the limit of y-axis plt.ylim(0, 80) # setting the labels of x-axis plt.xticks(x, labels=["one", "two", "three", "four"]) # Adding legends plt.legend(["GFG"]) plt.show()
Producción:
>>> Más funciones en la clase de figura
Clase de ejes
La clase Axes es la unidad más básica y flexible para crear subparcelas. Una figura dada puede contener muchos ejes, pero un eje dado solo puede estar presente en una figura. La función axes() crea el objeto de ejes.
Sintaxis:
ejes ([izquierda, abajo, ancho, alto])
Al igual que la clase pyplot, la clase axes también proporciona métodos para agregar títulos, leyendas, límites, etiquetas, etc. Veamos algunos de ellos:
- Añadir título – ax.set_title()
- Agregar etiqueta X y etiqueta Y – ax.set_xlabel() , ax.set_ylabel()
- Establecer límites: ax.set_xlim() , ax.set_ylim()
- Marcar etiquetas – ax.set_xticklabels() , ax.set_yticklabels()
- Adición de leyendas – ax.legend()
Ejemplo:
Python3
# Python program to show pyplot module import matplotlib.pyplot as plt from matplotlib.figure import Figure # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] fig = plt.figure(figsize = (5, 4)) # Adding the axes to the figure ax = fig.add_axes([1, 1, 1, 1]) # plotting 1st dataset to the figure ax1 = ax.plot(x, y) # plotting 2nd dataset to the figure ax2 = ax.plot(y, x) # Setting Title ax.set_title("Linear Graph") # Setting Label ax.set_xlabel("X-Axis") ax.set_ylabel("Y-Axis") # Adding Legend ax.legend(labels = ('line 1', 'line 2')) plt.show()
Producción:
Múltiples Parcelas
Hemos aprendido acerca de los componentes básicos de un gráfico que se pueden agregar para que pueda transmitir más información. Un método puede ser llamando a la función de trazado una y otra vez con un conjunto diferente de valores, como se muestra en el ejemplo anterior. Ahora veamos cómo trazar múltiples gráficos usando algunas funciones y también cómo trazar subgráficos.
Método 1: Usar el método add_axes()
El método add_axes() se usa para agregar ejes a la figura. Este es un método de clase de figura.
Sintaxis:
add_axes(self, *args, **kwargs)
Ejemplo:
Python3
# Python program to show pyplot module import matplotlib.pyplot as plt from matplotlib.figure import Figure # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # Creating a new figure with width = 5 inches # and height = 4 inches fig = plt.figure(figsize =(5, 4)) # Creating first axes for the figure ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # Creating second axes for the figure ax2 = fig.add_axes([1, 0.1, 0.8, 0.8]) # Adding the data to be plotted ax1.plot(x, y) ax2.plot(y, x) plt.show()
Producción:
Método 2: Usar el método subplot() .
Este método agrega otro gráfico en la posición de cuadrícula especificada en la figura actual.
Sintaxis:
subtrama(nrows, ncols, index, **kwargs)
subtrama(pos, **kwargs)
trama secundaria (hacha)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # Creating figure object plt.figure() # adding first subplot plt.subplot(121) plt.plot(x, y) # adding second subplot plt.subplot(122) plt.plot(y, x)
Producción:
Método 3: Usar el método subplots()
Esta función se utiliza para crear figuras y varias subtramas al mismo tiempo.
Sintaxis:
matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=Ninguno, gridspec_kw=Ninguno, **fig_kw)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # Creating the figure and subplots # according the argument passed fig, axes = plt.subplots(1, 2) # plotting the data in the # 1st subplot axes[0].plot(x, y) # plotting the data in the 1st # subplot only axes[0].plot(y, x) # plotting the data in the 2nd # subplot only axes[1].plot(x, y)
Producción:
Método 4: Usar el método subplot2grid()
Esta función crea un objeto de ejes en una ubicación específica dentro de una cuadrícula y también ayuda a expandir el objeto de ejes en varias filas o columnas. En palabras más simples, esta función se usa para crear múltiples gráficos dentro de la misma figura.
Sintaxis:
Plt.subplot2grid(forma, ubicación, rango de filas, rango de columnas)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # adding the subplots axes1 = plt.subplot2grid ( (7, 1), (0, 0), rowspan = 2, colspan = 1) axes2 = plt.subplot2grid ( (7, 1), (2, 0), rowspan = 2, colspan = 1) # plotting the data axes1.plot(x, y) axes2.plot(y, x)
Producción:
Diferentes tipos de diagramas de Matplotlib
Matplotlib admite una variedad de gráficos, incluidos gráficos de líneas, gráficos de barras, histogramas, gráficos de dispersión, etc. En este artículo, analizaremos los gráficos más utilizados con la ayuda de algunos buenos ejemplos y también veremos cómo personalizar cada gráfico.
Nota: Algunos elementos como el eje, el color son comunes a cada parcela, mientras que algunos elementos son específicos de la maceta.
Gráfico de linea
El gráfico de líneas es uno de los gráficos básicos y se puede crear usando la función plot() . Se utiliza para representar una relación entre dos datos X e Y en un eje diferente.
Sintaxis:
matplotlib.pyplot.plot(\*argumentos, scalex=Verdadero, scaley=Verdadero, datos=Ninguno, \*\*kwargs)
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y) # Adding title to the plot plt.title("Line Chart") # Adding label on the y-axis plt.ylabel('Y-Axis') # Adding label on the x-axis plt.xlabel('X-Axis') plt.show()
Producción:
Veamos cómo personalizar el gráfico de líneas creado anteriormente. Usaremos las siguientes propiedades:
- color: Cambiar el color de la línea
- ancho de línea: personalizar el ancho de la línea
- marcador: para cambiar el estilo del punto trazado real
- markersize: Para cambiar el tamaño de los marcadores
- linestyle: Para definir el estilo de la línea trazada
Distintos estilos de línea disponibles
Personaje |
Definición |
---|---|
– |
Línea sólida |
— |
Linea discontinua |
-. |
línea de puntos y guiones |
: |
Linea punteada |
. |
Marcador de puntos |
o |
Marcador circular |
, |
marcador de píxeles |
v |
marcador de triángulo_abajo |
^ |
marcador de triángulo_arriba |
< |
marcador triángulo_izquierda |
> |
marcador triángulo_derecho |
1 |
marcador tri_down |
2 |
marcador tri_up |
3 |
marcador tri_left |
4 |
marcador tri_right |
s |
marcador cuadrado |
pags |
marcador del pentágono |
* |
marcador de estrella |
h |
marcador hexagonal1 |
H |
marcador hexagonal2 |
+ |
Marcador más |
X |
marcador X |
D |
marcador de diamante |
d |
marcador de diamante delgado |
| |
marcador de línea v |
_ |
marcador de línea h |
Ejemplo:
Python3
import matplotlib.pyplot as plt # initializing the data x = [10, 20, 30, 40] y = [20, 25, 35, 55] # plotting the data plt.plot(x, y, color='green', linewidth=3, marker='o', markersize=15, linestyle='--') # Adding title to the plot plt.title("Line Chart") # Adding label on the y-axis plt.ylabel('Y-Axis') # Adding label on the x-axis plt.xlabel('X-Axis') plt.show()
Producción:
Nota: Para obtener más información, consulte Estilos de trazado de líneas en Matplotlib
Gráfico de barras
Un gráfico de barras es un gráfico que representa la categoría de datos con barras rectangulares con longitudes y alturas proporcionales a los valores que representan. Los gráficos de barras se pueden trazar horizontal o verticalmente. Un gráfico de barras describe las comparaciones entre las categorías discretas. Se puede crear usando el método bar().
En el siguiente ejemplo, utilizaremos el conjunto de datos de consejos. La base de datos de propinas es el registro de la propina dada por los clientes en un restaurante durante dos meses y medio a principios de la década de 1990. Contiene 6 columnas como total_bill, propina, sexo, fumador, día, hora, tamaño.
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data x = data['day'] y = data['total_bill'] # plotting the data plt.bar(x, y) # Adding title to the plot plt.title("Tips Dataset") # Adding label on the y-axis plt.ylabel('Total Bill') # Adding label on the x-axis plt.xlabel('Day') plt.show()
Producción:
Personalización que está disponible para el gráfico de barras:
- color: Para las caras de la barra
- edgecolor: Color de los bordes de la barra
- linewidth: Ancho de los bordes de la barra
- ancho: Ancho de la barra
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data x = data['day'] y = data['total_bill'] # plotting the data plt.bar(x, y, color='green', edgecolor='blue', linewidth=2) # Adding title to the plot plt.title("Tips Dataset") # Adding label on the y-axis plt.ylabel('Total Bill') # Adding label on the x-axis plt.xlabel('Day') plt.show()
Producción:
Nota: Las líneas entre las barras se refieren a los diferentes valores en el eje Y del valor particular del eje X.
Histograma
Un histograma se utiliza básicamente para representar datos proporcionados en forma de algunos grupos. Es un tipo de gráfico de barras en el que el eje X representa los rangos de contenedores, mientras que el eje Y brinda información sobre la frecuencia. La función hist() se usa para calcular y crear un histograma de x.
Sintaxis:
matplotlib.pyplot.hist(x, contenedores=Ninguno, rango=Ninguno, densidad=Falso, pesos=Ninguno, acumulativo=Falso, fondo=Ninguno, histtype=’barra’, alineación=’media’, orientación=’vertical’, rwidth=Ninguno, log=Falso, color=Ninguno, label=Ninguno, stacked=False, \*, data=Ninguno, \*\*kwargs)
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data x = data['total_bill'] # plotting the data plt.hist(x) # Adding title to the plot plt.title("Tips Dataset") # Adding label on the y-axis plt.ylabel('Frequency') # Adding label on the x-axis plt.xlabel('Total Bill') plt.show()
Producción:
Personalización que está disponible para el Histograma –
- bins: Número de bins de igual ancho
- color: Para cambiar el color de la cara
- edgecolor: Color de los bordes
- linestyle: Para los bordes
- alfa: valor de fusión, entre 0 (transparente) y 1 (opaco)
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data x = data['total_bill'] # plotting the data plt.hist(x, bins=25, color='green', edgecolor='blue', linestyle='--', alpha=0.5) # Adding title to the plot plt.title("Tips Dataset") # Adding label on the y-axis plt.ylabel('Frequency') # Adding label on the x-axis plt.xlabel('Total Bill') plt.show()
Producción:
Gráfico de dispersión
Los diagramas de dispersión se utilizan para observar las relaciones entre las variables. El método scatter() en la biblioteca matplotlib se usa para dibujar un diagrama de dispersión.
Sintaxis:
matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=Ninguno, c=Ninguno, marker=Ninguno, cmap=Ninguno, vmin=Ninguno, vmax=Ninguno, alpha=Ninguno, linewidths=Ninguno, edgecolors=Ninguno
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data x = data['day'] y = data['total_bill'] # plotting the data plt.scatter(x, y) # Adding title to the plot plt.title("Tips Dataset") # Adding label on the y-axis plt.ylabel('Total Bill') # Adding label on the x-axis plt.xlabel('Day') plt.show()
Producción:
Las personalizaciones que están disponibles para el diagrama de dispersión son:
- s: tamaño del marcador (puede ser escalar o array de tamaño igual al tamaño de x o y)
- c: color de secuencia de colores para marcadores
- marcador: estilo de marcador
- anchos de línea: ancho del borde del marcador
- edgecolor: color del borde del marcador
- alfa: valor de fusión, entre 0 (transparente) y 1 (opaco)
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data x = data['day'] y = data['total_bill'] # plotting the data plt.scatter(x, y, c=data['size'], s=data['total_bill'], marker='D', alpha=0.5) # Adding title to the plot plt.title("Tips Dataset") # Adding label on the y-axis plt.ylabel('Total Bill') # Adding label on the x-axis plt.xlabel('Day') plt.show()
Producción:
Gráfico circular
El gráfico circular es un gráfico circular que se utiliza para mostrar solo una serie de datos. El área de sectores del pastel representa el porcentaje de las partes de los datos. Las rebanadas de pastel se llaman cuñas. Se puede crear utilizando el método pie().
Sintaxis:
matplotlib.pyplot.pie(datos, explotar=Ninguno, etiquetas=Ninguno, colores=Ninguno, autopct=Ninguno, sombra=Falso)
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data cars = ['AUDI', 'BMW', 'FORD', 'TESLA', 'JAGUAR',] data = [23, 10, 35, 15, 12] # plotting the data plt.pie(data, labels=cars) # Adding title to the plot plt.title("Car data") plt.show()
Producción:
Las personalizaciones que están disponibles para el gráfico circular son:
- explotar: Mover las cuñas de la trama
- autopct: etiqueta la cuña con su valor numérico.
- color: el atributo se utiliza para proporcionar color a las cuñas.
- sombra: Se utiliza para crear sombra de cuña.
Ejemplo:
Python3
import matplotlib.pyplot as plt import pandas as pd # Reading the tips.csv file data = pd.read_csv('tips.csv') # initializing the data cars = ['AUDI', 'BMW', 'FORD', 'TESLA', 'JAGUAR',] data = [23, 13, 35, 15, 12] explode = [0.1, 0.5, 0, 0, 0] colors = ( "orange", "cyan", "yellow", "grey", "green",) # plotting the data plt.pie(data, labels=cars, explode=explode, autopct='%1.2f%%', colors=colors, shadow=True) plt.show()
Producción:
Guardar una parcela
Para guardar un gráfico en un archivo en el disco de almacenamiento, se utiliza el método savefig(). Un archivo se puede guardar en muchos formatos como .png, .jpg, .pdf, etc.
Sintaxis:
pyplot.savefig(fname, dpi=Ninguno, facecolor=’w’, edgecolor=’w’, orientación=’retrato’, papertype=Ninguno, formato=Ninguno, transparente=Falso, bbox_inches=Ninguno, pad_inches=0.1, frameon= Ninguno, metadatos=Ninguno)
Ejemplo:
Python3
import matplotlib.pyplot as plt # Creating data year = ['2010', '2002', '2004', '2006', '2008'] production = [25, 15, 35, 30, 10] # Plotting barchart plt.bar(year, production) # Saving the figure. plt.savefig("output.jpg") # Saving figure by changing parameter values plt.savefig("output1", facecolor='y', bbox_inches="tight", pad_inches=0.3, transparent=True)
Producción:
Publicación traducida automáticamente
Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA