У меня есть некоторые проблемы с использованием цветовой панели Matplotlib, возможно, я не понимаю документацию (я не являюсь носителем английского языка) или ее основную концепцию.
Предположим, у меня есть матрица данных (форма, N*2). Я хочу сделать точечную диаграмму этих данных и добавить цветовую схему на основе столбца метки (N * 1) в float. Я знаю, как использовать colorbar и scalarmappable.
Но меня интересуют некоторые опорные значения в этом столбце меток, и я хочу представить эти значения в какой-нибудь интересной позиции на цветовой полосе. Например, значение метки 0, я хочу расположить его на 1/3 позиции или посередине, что на выбранной мной цветовой полосе может иметь белый или серый цвет.
Но если я правильно понимаю, colorbar берет только массив данных, отображаемый в [0, 1], из исходных данных в [min, max]. В этом случае интересующее меня опорное значение окажется где-то случайным, если только я не очень тщательно определю свою функцию нормализации.
Таким образом, чтобы поместить белый цвет, который я предпочитаю для моего опорного значения, в середине цветовой полосы, я должен определить функцию нормализации, которая не только нормализует мои данные, но и делает опорное значение в позиции 0,5.
Для моего ограниченного опыта работы с Matplotlib это решение, которое я знаю.
В идеале, предположим, что у меня есть столбец данных с плавающей запятой, я мог бы выбрать какое-то значение поворота и присвоить им какое-то особое положение. а затем я их нормализую и передаю в палитру. Однако на цветовой полосе я мог установить специальные цвета для тех специальных позиций, которые я ранее определил. и получить соответствующую цветовую полосу с правильным локатором галочки и метками галочки, которые указывают мое специальное значение поворота.
Я ищу более простой способ (из стандартной библиотеки), который я мог бы использовать для достижения этой цели.
LinearSegmentedColormap
matplotlib.org/api/, чтобы вы могли поместите ваши основные цвета, где бы вы ни находились. Я бы предложил попробовать что-нибудь, а затем отредактировать свой вопрос, включив в него код. Люди лучше реагируют на код, чем на стену прозы (а у вас неплохой английский). - person tacaswell   schedule 25.09.2013linearsegmap
. - person Hualin   schedule 25.09.2013