Pyplot для построения распределения разброса с помощью цветов

У меня есть три одномерных массива одинаковой формы: массив A имеет диапазон значений от 8,0 до 12,0, массив B имеет диапазон значений от 0,5 до 2,0, массив C имеет диапазон значений от 20 до 320. Теперь я хочу построить распределение разброса: значения в A как ось x, значения в B как ось y, и каждая точка имеет цвет, соответствующий значению в C. Я пробовал это:

ax2.scatter(A, B, c=C/320.0,s=7,marker='.',edgecolor='none')

Сюжет показан как this, но я предпочитаю, чтобы он выглядел как это. Как я могу этого добиться? Кроме того, как я могу добавить цветовую полосу, как показано в примерах. Также я хочу, чтобы цвет соответствовал значениям C в пространстве журнала, а не в линейном пространстве. Спасибо большое!


person Courage_2018    schedule 21.03.2018    source источник


Ответы (1)


Вам просто нужно добавить параметр cmap. Ваш код должен выглядеть так:

ax2.scatter(A, B, c=C, s=7, marker='.', cmap='Blues')

Вы можете выбрать любой из перечисленных здесь cmap: https://matplotlib.org/examples/color/colormaps_reference.html

Для отображения шкалы цветов вам нужно будет добавить дополнительную строку:

plt.colorbar()
person Ankur Ankan    schedule 21.03.2018
comment
Чтобы получить цвета в журнале, вы можете просто передать np.log(C) аргументу c. Я не уверен, почему вы получаете эту ошибку, как вы инициализируете свой сюжет? - person Ankur Ankan; 22.03.2018