Извлечение матрицы matplotlib в шестнадцатеричном формате

Я пытаюсь извлечь дискретные цвета из colplap matplotlib, манипулируя этим примером . Однако я не могу найти N дискретных цветов, которые извлекаются из цветовой карты.

В приведенном ниже коде я использовал cmap._segmentdata , но я обнаружил, что это определение всей cmap._segmentdata . Учитывая colormap и целое число N , как мне извлечь N дискретных цветов из цветовой карты и экспортировать их в шестнадцатеричном формате?

 from pylab import * delta = 0.01 x = arange(-3.0, 3.0, delta) y = arange(-3.0, 3.0, delta) X,Y = meshgrid(x, y) Z1 = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) Z2 = bivariate_normal(X, Y, 1.5, 0.5, 1, 1) Z = Z2 - Z1 # difference of Gaussians cmap = cm.get_cmap('seismic', 5) # PiYG cmap_colors = cmap._segmentdata def print_hex(r,b,g): if not(0 <= r <= 255 or 0 <= b <= 255 or 0 <= g <= 255): raise ValueError('rgb not in range(256)') print '#%02x%02x%02x' % (r, b, g) for i in range(len(cmap_colors['blue'])): r = int(cmap_colors['red'][i][2]*255) b = int(cmap_colors['blue'][i][2]*255) g = int(cmap_colors['green'][i][2]*255) print_hex(r, g, b) im = imshow(Z, cmap=cmap, interpolation='bilinear', vmax=abs(Z).max(), vmin=-abs(Z).max()) axis('off') colorbar() show() 

One Solution collect form web for “Извлечение матрицы matplotlib в шестнадцатеричном формате”

Вы можете получить кортеж значений rgba для сегмента с индексом i , вызвав cmap(i) . Существует также уже функция, которая превращает значения rgb в hex. Как писал Джо Кингтон в комментариях, вы можете использовать matplotlib.colors.rgb2hex . Поэтому возможным решением могло бы стать:

 from pylab import * cmap = cm.get_cmap('seismic', 5) # PiYG for i in range(cmap.N): rgb = cmap(i)[:3] # will return rgba, we take only first 3 so we get rgb print(matplotlib.colors.rgb2hex(rgb)) 

Выход:

 #00004c #0000ff #ffffff #ff0000 #7f0000 
  • Matplotlib: Как использовать timestamps с broken_barh?
  • asyncio matplotlib show () все еще замораживает программу
  • python3.3 matplotlib не может импортировать имя _tkagg
  • Лучший способ построения категориальных данных
  • объединение логарифма и линейной шкалы в matplotlib
  • 2D-графики не сидят на одном уровне с стенками 3D-оси в python mplot3D
  • Стрелки аннотации Python с одинаковой длиной
  • Функция построения трех измерений по заданной области с помощью matplotlib
  • Python - лучший язык программирования в мире.