mirror of
				https://github.com/NohamR/Stage-2023.git
				synced 2025-10-31 07:19:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from colour import Color
 | |
| import matplotlib.pyplot as plt
 | |
| 
 | |
| def rainbow_gradient(distances):
 | |
|     num_colors = len(distances)
 | |
|     colors = []
 | |
|     base_color = Color("green")
 | |
|     target_color = Color("red")
 | |
|     
 | |
|     luminance_start = base_color.get_luminance()
 | |
|     luminance_end = target_color.get_luminance()
 | |
|     
 | |
|     for i in range(num_colors):
 | |
|         moydist = distances[i]
 | |
|         t = i / (num_colors - 1)  # Interpolation paramètre t
 | |
|         
 | |
|         adjusted_luminance = luminance_start + (luminance_end - luminance_start) * (1 - t) * (moydist - 1) / 18
 | |
|         color = Color(rgb=(base_color.rgb[0] * (1 - t) + target_color.rgb[0] * t,
 | |
|                            base_color.rgb[1] * (1 - t) + target_color.rgb[1] * t,
 | |
|                            base_color.rgb[2] * (1 - t) + target_color.rgb[2] * t))
 | |
|         color.set_luminance(adjusted_luminance)
 | |
|         
 | |
|         hex_code = color.hex_l
 | |
|         colors.append(hex_code)
 | |
|     
 | |
|     return colors
 | |
| 
 | |
| distances = [0.05263158, 0.05263158, 0.05263158, 0.05263158, 0.05263158,
 | |
|              0.05263158, 0.05263158, 0.05263158, 0.05263158, 0.05263158,
 | |
|              0.05263158, 0.05263158, 0.05263158, 0.05263158, 0.05263158,
 | |
|              0.05263158, 0.05263158, 0.05263158, 19.0]
 | |
| 
 | |
| gradient = rainbow_gradient(distances)
 | |
| 
 | |
| # Create a figure and axis
 | |
| fig, ax = plt.subplots()
 | |
| 
 | |
| # Set the background color of the plot
 | |
| fig.set_facecolor('white')
 | |
| 
 | |
| # Hide the axis labels
 | |
| ax.set_axis_off()
 | |
| 
 | |
| # Calculate the width and height of each color patch
 | |
| width = 1.0 / len(gradient)
 | |
| height = 1.0
 | |
| 
 | |
| # Iterate through the colors and plot a rectangle for each
 | |
| for i, color in enumerate(gradient):
 | |
|     # Calculate the x-coordinate of the color patch
 | |
|     x = i * width
 | |
|     
 | |
|     # Plot the color patch
 | |
|     rect = plt.Rectangle((x, 0), width, height, facecolor=color)
 | |
|     ax.add_patch(rect)
 | |
| 
 | |
| # Set the aspect ratio to 'auto' to ensure the patches are square
 | |
| ax.set_aspect('auto')
 | |
| 
 | |
| # Set the limits of the x-axis
 | |
| ax.set_xlim(0, 1)
 | |
| 
 | |
| # Display the plot
 | |
| plt.show()
 | |
| 
 |