Круговая интерполяция для Matplotlib imshow с циклическими картами цветовPython

Программы на Python
Ответить
Anonymous
 Круговая интерполяция для Matplotlib imshow с циклическими картами цветов

Сообщение Anonymous »

Как бы вы реализовали метод циклической интерполяции для использования с функцией matplotlib.pyplot.imshow?
Когда функция imshow используется для визуализации данных циклического характера, например В 24-часовом формате циклические цветные карты весьма полезны. Однако если imshow используется для масштабирования данных с помощью интерполяции, графики получаются не такими, как можно было бы ожидать.
См. ниже:

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt

colormap = plt.cm.twilight_shifted

# Create an array with values between 0-3
arr = np.random.randint(0,4,size=[16,16])

# Create a smaller array with values between 20-23
patch = np.random.randint(20,24,size=[4,4])

# Insert the patch in the middle of the array
arr[6:10,6:10] = patch

# Visualize the array, without interpolation
plt.figure(figsize=[18,10])
plt.imshow(arr, cmap = colormap, aspect='auto', interpolation=None)
plt.colorbar()

# Visualize the array, with interpolation
plt.figure(figsize=[18,10])
plt.imshow(arr, cmap = colormap, aspect='auto', interpolation='bicubic')
plt.colorbar()
Результаты на двух графиках:
Нет интерполяции
Бикубическая интерполяция
Вы можете это видеть интерполяция создает белую линию между двумя группами значений, соответствующую значениям около 12. Однако, поскольку мы используем циклическую карту цветов, я бы на самом деле ожидал, что значения будут интерполированы между [0,3] и [20,23] группы должны быть черными. Я предполагаю, что это связано с тем, что методы интерполяции, реализованные в функции imshow, не учитывают цикличность карты цветов.
Есть идеи о том, как добиться правильной интерполяции для визуализации? Следует ли добавлять в matplotlib циклическую интерполяцию для циклических цветовых карт в качестве функции?

Подробнее здесь: https://stackoverflow.com/questions/662 ... color-maps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»