#python #matplotlib #colormap
#python #matplotlib #цветовая карта
Вопрос:
Я хочу создать цветовую карту в python, похожую на это изображение:
но моя карта состоит только из 3 строк и 4 столбцов. И я хочу присвоить определенное значение цвета каждому квадрату, используя значения RGB. Я пробовал этот код
colors=np.array([[0.01, 0.08, 0.01], [0.01, 0.16, 0.01], [0.01, 0.165, 0.01], [0.01, 0.3, 0.01],
[0.01, 0.2, 0.01], [0.666, 0.333, 0.01], [0.01, 0.165, 0.01], [0.01, 0.3, 0.01],
[0.01, 0.2, 0.01], [0.666, 0.333, 0.01], [0.01, 0.165, 0.01], [0.01, 0.3, 0.01]])
fig, ax=plt.subplots()
ax.imshow(colors)
ax.set_aspect('equal')
plt.show()
но результат не соответствует моим ожиданиям. Кажется, что с помощью этого метода я не могу использовать значения RGB для представления цвета для квадрата. Кто-нибудь может мне помочь, пожалуйста? Спасибо!
Комментарии:
1. Что вы получаете вместо своих ожиданий? Каковы ваши ожидания?
2. Является ли массив, который вы показали, 2D-данными, которые вы хотите отобразить? Если это так, вы не указали никаких цветов. Или это должны быть цвета? Если да, то какие 2D-данные вы хотите отобразить?
3. @mkrieger1 как я уже сказал, я хочу, чтобы цветовая карта состояла из 3 строк и 4 столбцов, но на моем рисунке показана карта из 12 строк и 3 столбцов. Вы можете попробовать скопировать и запустить мой код, чтобы увидеть результат. Извините, что я не могу опубликовать изображение в этом разделе комментариев.
4. В любом случае вы не должны публиковать изображения в комментариях, вместо этого отредактируйте вопрос.
5. У вас есть массив
(12,3)
цветов, в то время как вам нужно(3, 4, 3)
изображение, один цвет RGB на пиксель.
Ответ №1:
У вас есть массив (12,3)
цветов, в то время как вам нужно (4, 3, 3)
изображение, один цвет RGB на пиксель.
import numpy as np # type: ignore
import matplotlib.pyplot as plt # type: ignore
colors = np.array(
[
# this is the first row
[
# these are the 3 pixels in the first row
[0.01, 0.08, 0.01],
[0.01, 0.16, 0.01],
[0.01, 0.165, 0.01],
],
[
[0.01, 0.3, 0.01],
[0.01, 0.2, 0.01],
[0.666, 0.333, 0.01],
],
[
[0.01, 0.165, 0.01],
[0.01, 0.3, 0.01],
[0.01, 0.2, 0.01],
],
# this is the fourth row
[
[0.666, 0.333, 0.01],
[0.01, 0.165, 0.01],
[0.01, 0.3, 0.01],
],
]
)
print(colors.shape)
fig, ax = plt.subplots()
ax.imshow(colors)
ax.set_aspect("equal")
plt.show()
Переставьте данные по мере необходимости в строках / столбцах.
Комментарии:
1. Большое вам спасибо!