¿Cómo generar un color aleatorio para un diagrama de Matplotlib en Python?

El manejo de grandes conjuntos de datos requiere bibliotecas y métodos que puedan usarse para almacenar, analizar y manipular los conjuntos de datos. Python es una opción popular cuando se trata de análisis y ciencia de datos. Los científicos de datos prefieren Python debido a su amplio soporte de biblioteca que contiene funciones que se pueden usar para trabajar con conjuntos de datos para crear gráficos y tablas. Matplotlib es una biblioteca de visualización de datos en Python. Matplotlib funciona de manera similar a Matlaby produce tablas y gráficos interactivos. Matplotlib ofrece una variedad de tipos de gráficos para elegir. Las propiedades del gráfico se pueden establecer explícitamente utilizando los métodos y atributos incorporados. Para generar colores aleatorios para un diagrama de Matplotlib en Python, se utilizan las bibliotecas matplotlib.pyplot y random de Python. El siguiente es un ejemplo para generar colores aleatorios para un diagrama de Matplotlib:

Primer enfoque

  1. Se crea un conjunto de datos con una array de equipos y una array de recuento de victorias. 
  2. La array de equipos se traza en el eje X y la array de recuento de victorias se traza en el eje Y. Matplotlib admite RGB o RGBA con valores flotantes en el rango 0-1.
  3. Ahora los valores RGB o RGBA que oscilan entre 0 y 1 determinan el color del gráfico.
  4. En este ejemplo, para crear valores aleatorios que oscilan entre 0 y 1. Los valores obtenidos de la ‘r’ roja, la ‘g’ verde y la ‘b’ azul se pasan a una tupla de color que forma el color final.
  5. Esta tupla se asigna a continuación al atributo de color del método plot(). 
  6. Los ejes X e Y están etiquetados y se proporciona un título al gráfico usando el método xlabel() , ylabel() y title() de la biblioteca matplotlib.pyplot.

Implementación de código:

Python3

import random as random
import matplotlib.pyplot as plt
  
teams = ['Kolkata', 'Delhi', 'Mumbai', 'Punjab',
         'Hyderabad', 'Bangalore', 'Rajasthan', 'Chennai']
  
wincount = [2, 0, 6, 0, 1, 0, 1, 4]
  
r = random.random()
b = random.random()
g = random.random()
  
color = (r, g, b)
  
plt.xlabel("Teams")
plt.ylabel("Winning Count")
plt.title("IPL RECORDS")
plt.plot(teams, wincount, c=color)

Producción:

Segundo enfoque

  1. En el segundo enfoque, se demuestra un gráfico de barras. Se declara una lista vacía para contener las tuplas de color.
  2. Los ejes X e Y están etiquetados y se establece un título para el gráfico. 
  3. Para agregar diferentes colores para n registros, se ejecuta un bucle for. 
  4. El método random.choice() de la biblioteca numpy se usa para crear tuplas de tamaño 3 con valores entre 0 y 1. 
  5. Los equipos y la array de recuento de victorias se trazan contra los ejes X e Y.
  6. Al atributo de color del método bar() de matplotlib.pyplot se le asigna la lista de tuplas. Se eligen tuplas aleatorias de la lista para cada barra.

Implementación de código

Python3

import random as random
import matplotlib.pyplot as plt
import numpy as np
  
l = []
teams = ['Kolkata', 'Delhi', 'Mumbai', 'Punjab',
         'Hyderabad', 'Bangalore', 'Rajasthan', 'Chennai']
  
wincount = [2, 0, 6, 0, 1, 0, 1, 4]
  
plt.xlabel("Teams")
plt.ylabel("Winning Count")
plt.title("IPL RECORDS")
  
for i in range(0, len(teams)+1):
    l.append(tuple(np.random.choice(range(0, 2), size=3)))
      
plt.bar(teams, wincount, color=l)

Producción:

Sin embargo, la desventaja de usar colores aleatorios es que, en caso de que se elija el blanco, la barra o línea en particular se vuelve invisible.

Publicación traducida automáticamente

Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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