Skip to content
Related Articles

Related Articles

Matplotlib.colors.hsv_to_rgb() in Python
  • Last Updated : 21 Apr, 2020

Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack.

matplotlib.colors.hsv_to_rgb()

The matplotlib.colors.hsv_to_rgb() function is used to convert hsv values to rgb.

Syntax: matplotlib.colors.hsv_to_rgb(hsv)

Parameters:

  • hsv: It is an array-like argument in the form of (…, 3) where all values are assumed to be in the range of 0 to 1.

Returns:



  • rgb: It returns an ndarray in the form of (…, 3) that comprises of colors converted to RGB values within the range of 0 to 1.

Example 1:




import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as np
   
  
# helper function to find 
# mid-points
def helper(z):
      
    k = ()
    for i in range(z.ndim):
        z = (z[k + np.index_exp[:-1]] + z[k + np.index_exp[1:]]) / 2.0
        k += np.index_exp[:]
          
    return z
   
# dummy coordinates with  rgb 
# values attached with each
s, alpha, x = np.mgrid[0:1:11j,
                       0:np.pi*2:25j,
                       -0.5:0.5:11j]
a = s*np.cos(alpha)
b = s*np.sin(alpha)
   
sc, alphac, xc = helper(s), helper(alpha), helper(x)
   
# wobbly torus about [0.7, *, 0]
sphere = (sc - 0.7)**2 + (xc + 0.2*np.cos(alphac*2))**2 < 0.2**2
   
# combining the color components
hsv = np.zeros(sphere.shape + (3,))
hsv[..., 0] = alphac / (np.pi*2)
hsv[..., 1] = sc
hsv[..., 2] = xc + 0.5
   
#the hsv to rgb function
plot_colors = matplotlib.colors.hsv_to_rgb(hsv)
   
# and plot everything
figure = plt.figure()
axes = figure.gca(projection='3d')
  
axes.voxels(a, b, x, sphere,
          facecolors=plot_colors,
          edgecolors=np.clip(2*plot_colors - 0.5, 0, 1), 
          linewidth=0.5)
   
plt.show()

Output:

Example 2:




from matplotlib.colors import hsv_to_rgb
  
# sample squares for example
first_square = np.full((50, 50, 3),
                       fill_value ='698'
                       dtype = np.uint8) / 255.0
  
second_square = np.full((50, 50, 3),
                        fill_value ='385',
                        dtype = np.uint8) / 255.0
  
plt.subplot(1, 2, 1)
plt.imshow(hsv_to_rgb(first_square))
  
plt.subplot(1, 2, 2)
plt.imshow(hsv_to_rgb(second_square))
  
plt.show()

Output:

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :