El histograma 2D se utiliza para analizar la relación entre dos variables de datos que tienen una amplia gama de valores. Un histograma 2D es muy similar a un histograma 1D. Los intervalos de clase del conjunto de datos se trazan en los ejes x e y. A diferencia del histograma 1D, se dibuja incluyendo el número total de combinaciones de los valores que ocurren en intervalos de x e y, y marcando las densidades. Es útil cuando hay una gran cantidad de datos en una distribución discreta, y lo simplifica al visualizar los puntos donde las frecuencias si las variables son densas.
Creación de un histograma 2D
La biblioteca Matplotlib proporciona una función incorporada matplotlib.pyplot.hist2d()
que se utiliza para crear un histograma 2D. A continuación se muestra la sintaxis de la función:
matplotlib.pyplot.hist2d(x, y, bins=(nx, ny), rango=Ninguno, densidad=Falso, pesos=Ninguno, cmin=Ninguno, cmax=Ninguno, cmap=valor)
Aquí (x, y)
especifique las coordenadas de las variables de datos, la longitud de los datos X y las variables Y debe ser la misma. El número de contenedores se puede especificar mediante el atributo bins=(nx, ny)
donde nx
y ny
es el número de contenedores que se utilizarán en las direcciones horizontal y vertical respectivamente. cmap=value
se utiliza para establecer la escala de colores. range=None
Es un parámetro opcional que se utiliza para establecer el área rectangular en la que se cuentan los valores de datos para el gráfico. density=value
es un parámetro opcional que acepta valores booleanos utilizados para normalizar el histograma.
El siguiente código crea un histograma 2D simple usando matplotlib.pyplot.hist2d()
una función que tiene algunos valores aleatorios de x e y:
# Import libraries import numpy as np import matplotlib.pyplot as plt import random # Creating dataset n = 100 x = np.random.standard_normal(n) y = 3.0 * x fig = plt.subplots(figsize =(10, 7)) # Creating plot plot.hist2d(x, y) plot.title("Simple 2D Histogram") # show plot plot.show()
Producción:
Personalización del histograma 2D
La matplotlib.pyplot.hist2d()
función tiene una amplia gama de métodos que podemos usar para personalizar y crear la trama para una mejor visualización y comprensión.
# Import libraries import numpy as np import matplotlib.pyplot as plt import random # Creating dataset x = np.random.normal(size = 500000) y = x * 3 + 4 * np.random.normal(size = 500000) fig = plt.subplots(figsize =(10, 7)) # Creating plot plot.hist2d(x, y) plot.title("Simple 2D Histogram") # show plot plot.show()
Producción:
Algunas de las personalizaciones del gráfico anterior se enumeran a continuación:
Cambiar la escala del contenedor: –
# Import libraries import numpy as np import matplotlib.pyplot as plt import random # Creating dataset x = np.random.normal(size = 500000) y = x * 3 + 4 * np.random.normal(size = 500000) # Creating bins x_min = np.min(x) x_max = np.max(x) y_min = np.min(y) y_max = np.max(y) x_bins = np.linspace(x_min, x_max, 50) y_bins = np.linspace(y_min, y_max, 20) fig, ax = plt.subplots(figsize =(10, 7)) # Creating plot plt.hist2d(x, y, bins =[x_bins, y_bins]) plt.title("Changing the bin scale") ax.set_xlabel('X-axis') ax.set_ylabel('X-axis') # show plot plt.tight_layout() plot.show()
Producción:
Cambiando la escala de color y agregando barra de color: –
# Import libraries import numpy as np import matplotlib.pyplot as plt import random # Creating dataset x = np.random.normal(size = 500000) y = x * 3 + 4 * np.random.normal(size = 500000) # Creating bins x_min = np.min(x) x_max = np.max(x) y_min = np.min(y) y_max = np.max(y) x_bins = np.linspace(x_min, x_max, 50) y_bins = np.linspace(y_min, y_max, 20) fig, ax = plt.subplots(figsize =(10, 7)) # Creating plot plt.hist2d(x, y, bins =[x_bins, y_bins], cmap = plt.cm.nipy_spectral) plt.title("Changing the color scale and adding color bar") # Adding color bar plt.colorbar() ax.set_xlabel('X-axis') ax.set_ylabel('X-axis') # show plot plt.tight_layout() plot.show()
Producción:
Filtrado de datos:-
# Import libraries import numpy as np import matplotlib.pyplot as plt import random # Creating dataset x = np.random.normal(size = 500000) y = x * 3 + 4 * np.random.normal(size = 500000) # Creating bins x_min = np.min(x) x_max = np.max(x) y_min = np.min(y) y_max = np.max(y) x_bins = np.linspace(x_min, x_max, 50) y_bins = np.linspace(y_min, y_max, 20) # Creating data filter data = np.c_[x, y] for i in range(10000): x_idx = random.randint(0, 500000) data[x_idx, 0] = -9999 data = data[data[:, 0]!=-9999] fig, ax = plt.subplots(figsize =(10, 7)) # Creating plot plt.hist2d(data[:, 0], data[:, 1], bins =[x_bins, y_bins]) plt.title("Filtering data") ax.set_xlabel('X-axis') ax.set_ylabel('X-axis') # show plot plt.tight_layout() plot.show()
Producción:
Usando la función matplotlib hexbin: –
# Import libraries import numpy as np import matplotlib.pyplot as plt import random # Creating dataset x = np.random.normal(size = 500000) y = x * 3 + 4 * np.random.normal(size = 500000) fig, ax = plt.subplots(figsize =(10, 7)) # Creating plot plt.title("Using matplotlib hexbin function") plt.hexbin(x, y, bins = 50) ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') # show plot plt.tight_layout() plot.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA