2015-10-28 5 views
0

Мне интересно, как рисовать цвета с учетом интенсивности с помощью python. Например, у меня есть список [0.1, 0.5, 1.0], и я хотел бы наложить круги с самым темным кругом на 1.0, а второй самый темный круг на 0,5 и третий самый темный круг на 0,1.цвета в matplotlib по интенсивности

Большое спасибо за помощь.

+0

Смотрите, если это отвечает на ваш вопрос: http://stackoverflow.com/questions/12965075/matplotlib -scatter-plot-color-as-function-of-third-variable/12965761 # 12965761 –

+0

Большое спасибо. Я просто решил проблему, используя «plt.cm.Greys» в matplotlib. – Juan

ответ

1

Использование Matplotlib, вы могли бы сделать что-то вроде этого:

from __future__ import division 
from matplotlib import pyplot as plt 
import numpy as np 

plt.ion() 

centers = [0.1, 0.5, 1.0] 
radii = [0.1, 0.2, 0.3] 
num_circs = len(centers) 

# make plot 
fig, ax = plt.subplots(figsize=(6, 6)) 
red = np.linspace(0, 1, num_circs) 
green = 0. * red 
blue = 1. - red 
colors = np.array([red, green, blue]).T 
power = 1.5 # adjust this upward to make brightness fall off faster 
for ii, (center_x, radius) in enumerate(zip(centers, radii)): 
    color = colors[ii] 
    brightness = ((num_circs-ii)/num_circs)**power # low ii is brighter 
    color = color * brightness 
    circle = plt.Circle((center_x, 0.), radius, color=color) 
    ax.add_artist(circle) 
_ = plt.axis([-0.3, 1.5, -0.9, 0.9], 'equal') 
plt.savefig('circles.png') 

, которая производит это: circles.png

Смежные вопросы