Imshow с двумя цветными полосами под Matplotlib

Опубликовано: 29 Января, 2022

В этой статье мы узнаем, как использовать Imshow с двумя цветными полосами в Matplotlib. Давайте обсудим некоторые концепции:

  • Matplotlib - потрясающая библиотека визуализации на Python для 2D-графиков массивов. Matplotlib - это многоплатформенная библиотека визуализации данных, построенная на массивах NumPy и предназначенная для работы с более широким стеком SciPy. Он был представлен Джоном Хантером в 2002 году.
  • Одним из самых больших преимуществ визуализации является то, что она позволяет нам получить визуальный доступ к огромным объемам данных в легко усваиваемых визуальных эффектах. Matplotlib состоит из нескольких графиков, таких как линия, столбец, разброс, гистограмма и т. Д.
  • Функция imshow () в модуле pyplot библиотеки matplotlib используется для отображения данных в виде изображения; т.е. на обычном 2D-растре.
  • Функция colorbar () в модуле pyplot библиотеки matplotlib добавляет шкалу палитры к графику, указывающую цветовую шкалу.

A simple Imshow() with one colorbar

Python3

# import libraries
import matplotlib.pyplot as plt
import numpy as np
  
# create image = 10x10 array
img = np.random.randint(-100, 100, (10, 10))
  
# make plot
fig, ax = plt.subplots()
  
# show image
shw = ax.imshow(img)
  
# make bar
bar = plt.colorbar(shw)
  
# show plot with labels
plt.xlabel("X Label")
plt.ylabel("Y Label")
bar.set_label("ColorBar")
plt.show()

Выход :

В приведенном выше выводе мы видим, что есть одна цветная полоса с диапазоном значений от -100 до 100. Это не выглядит эффективным и не очищает разницу между маленькими положительными значениями и большими положительными значениями, аналогично не очищает разницу между маленькими отрицательными значениями и большие отрицательные значения. Здесь мы разделяем цветовую шкалу на две части:

  • один с положительными значениями
  • один с отрицательными значениями

С разными цветами, которые помогают нам ясно и эффективно понять сюжет. Ниже указаны все этапы такой работы.

Необходимые шаги:

  1. Библиотеки импорта (matplotlib)
  2. Создать / загрузить данные изображения
  3. Маскированный массив для положительных и отрицательных значений
  4. Сделайте график с помощью метода subplot ()
  5. Показать изображение с помощью метода imshow ()
  6. Создавайте полосы с помощью метода matplotlib.pyplot.colorbar ()
  7. Показать график с метками

Example:

Python3

# import libraries
import matplotlib.pyplot as plt
import numpy as np
from numpy.ma import masked_array
  
# create image = 10x10 array
img = np.random.randint(-100, 100, (10, 10))
  
# masked array to positive and negative values
neg_img = masked_array(img, img >= 0)
pos_img = masked_array(img, img < 0)
  
# make plot
fig, ax = plt.subplots()
  
# show image
shw1 = ax.imshow(neg_img, cmap=plt.cm.Reds)
shw2 = ax.imshow(pos_img, cmap=plt.cm.winter)
  
# make bars
bar1 = plt.colorbar(shw1)
bar2 = plt.colorbar(shw2)
  
# show plot with labels
plt.xlabel("X Label")
plt.ylabel("Y Label")
bar1.set_label("ColorBar 1")
bar2.set_label("ColorBar 2")
plt.show()

Выход :

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.