2015-12-10 4 views
0

Я создал 2D контурный график с цветовой схемой viridis в границах vmin = 0, vmax = 4. Вот код:Преобразование заданного значения цвета контура в код rgb

ax.contourf(xi/d,yi/d,data/d,12,vmin=0,vmax=4,cmap=vs.viridis(),aspect='equal') 

Теперь у меня есть из другого расчета точка данных в определенном месте с данными = 3.5 и хочу наложить это к контуру с использованием цветного кругом патча.

Так как я могу добавить информацию цвета RGB к окружности в пределах диапазона и используется ColorScheme моего contourf

Спасибо за помощь

ответ

0

вы можете использовать matplotlib.colors.Normalize экземпляр, чтобы сделать это:

import matplotlib.pyplot as plt 
import matplotlib.colors as colors 

norm = colors.Normalize(vmin=0,vmax=4) 
cmap = plt.cm.viridis 

mycolor = cmap(norm(3.5)) 
print mycolor 
# (0.67848900000000001, 0.86374200000000001, 0.189503, 1.0) 

Обратите внимание, что если цветовая палитра была импортирована из другого файла, она должна быть зарегистрирована matplotlib прежде, чем это сработает. Например:

import myviridisfile as vs 
plt.register_cmap(name='viridis', cmap=vs.viridis) 
+0

Спасибо, что работает, к сожалению, не для viridis colormap. Сообщение об ошибке: viridis() не принимает аргументов (1 данный) Но я люблю эту цветочную карту * g * – user3012486

+0

Если вы не используете 'matplotlib 1.5.0' и импортировали' viridis' из другого файла, вы можете нужно сначала зарегистрировать его: 'plt.register_cmap (name = 'viridis', cmap = vs.viridis)' – tom

+0

Возможно, мой вопрос должен быть * как * вы импортируете 'viridis'? – tom

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

  • Нет связанных вопросов^_^