Я пытаюсь построить некоторые данные для их анализа.
Мои данные определяются следующим образом:
class Data(object):
def __init__(self, rows=200, cols=300):
"""
The Data constructor
"""
# The data grid
self.cols = cols
self.rows = rows
# The 2D data structure
self.data = numpy.zeros((rows, cols), float)
Сначала у меня был такой метод:
def generate_data_heat_map(data, x_axis_label, y_axis_label, plot_title, file_path):
plt.figure()
plt.title(plot_title)
fig = plt.imshow(data.data, extent=[0, data.cols, data.rows, 0])
plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
plt.colorbar(fig)
plt.savefig(file_path + '.png')
plt.close()
Это дает мне что-то вроде изображения тепловой карты (второй рисунок), потому что я передаю ему MxN [яркость (оттенки серого, только массив с плавающей запятой)]. И не знаю, почему это не создает изображение в градациях серого, но до сих пор я не беспокоился об этом, потому что это результат, который я хотел.
После еще нескольких вычислений у меня был этот метод для визуализации моих данных, используя data_property как RGB и data_uncertaity как альфа-канал:
def generate_data_uncertainty_heat_map(data_property, data_uncertainty, x_axis_label, y_axis_label, plot_title, file_path):
plt.figure()
uncertainty = numpy.zeros((data_property.rows, data_property.cols, 4))
uncertainty[..., :3] = data_property.data[..., numpy.newaxis]
uncertainty[..., 3] = data_uncertainty.data
plt.title(plot_title)
fig = plt.imshow(uncertainty.data, extent=[0, data_property.cols, data_property.rows, 0])
plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
plt.colorbar(fig)
plt.savefig(file_path + '.png')
plt.close()
Но, конечно, это дает мне изображение в градациях серого с альфа-значениями, так как я повторяю одни и те же значения для R, G и B. Но мне действительно хотелось бы получить результат первого метода (цветной) с некоторыми вычисленными альфа-значениями как неуверенность в данных.
Я заметил, что моя цветовая полоса тоже ничего не говорит о моих данных (она в RGB, я не могу использовать ее для анализа своих данных)
Я не знаю, как добиться желаемого результата, который состоит в том, чтобы иметь график «тепловой карты» с объединенными альфа-значениями, определенными с моими uncertainty_data, и цветной полосой, представляющей эту неопределенность. Как объединить эти два изображения выше:
Это как мой цвет:
Это как моя альфа-версия:
С преобразованием, представленным @BlazBratanic, я думаю, что вижу немного цвета (не уверен в этом), но это далеко не то, что я ожидал.
Все мои значения находятся в диапазоне от 0,0 до 1,0.
Заранее спасибо.