Визуализируйте несколько двумерных массивов с одинаковой цветовой схемой - PullRequest
2 голосов
/ 27 мая 2020

Сейчас я пытаюсь визуализировать три 2D-массива одного цвета. Массивы размером 13x13 содержат целые числа. Во внешнем файле у меня есть шестнадцатеричный цветовой код для каждого целого числа.

Когда я сейчас пытаюсь визуализировать массивы, два из трех массивов выглядят хорошо. Все числа соответствуют цветовым кодам и правильно отображают массивы. Но на последнем рисунке часть данных присвоена неверно.

Here is a picture of my problem.

color_names = [c.strip() for c in open(colors).readlines()]
color_dict =  {v: k for v, k in enumerate(color_names)}

unique_classes = (np.unique(np.asarray(feature_map))).tolist()
number_classes = len(unique_classes)

color_code = [color_dict.get(cla) for cla in unique_classes]


cmap = plt.colors.ListedColormap(color_code)
norm = plt.colors.BoundaryNorm(unique_classes, cmap.N)

img = pyplot.imshow(feature_map[0],interpolation='nearest',
cmap = cmap,norm=norm)

pyplot.colorbar(img,cmap=cmap,
norm=norm,boundaries=unique_classes)
pyplot.show()

img1 = pyplot.imshow(feature_map[1],interpolation='nearest',
cmap = cmap,norm=norm)
pyplot.show()

img2 = pyplot.imshow(feature_map[2],interpolation='nearest',
cmap = cmap,norm=norm)

pyplot.colorbar(img2,cmap=cmap,
norm=norm,boundaries=unique_classes)

pyplot.show()

Точно такие же данные, как на картинке:

feature_map = [[[25,25,25,25,56,56,2,2,2,2,2,2,25],[25,25,25,25,25,25,59,7,72,72,72,72,2],[25,25,25,25,25,25,59,72,72,72,72,72,2],[25,25,25,24,24,24,62,0,0,0,0,25,25],[25,25,24,24,24,24,24,24,24,24,25,25,25],[26,26,24,24,24,24,24,26,26,26,6,6,6],[26,26,26,24,24,26,26,26,26,26,26,6,6],[26,26,26,0,0,26,26,26,26,26,26,6,6],[28,28,28,28,28,28,28,26,26,26,26,6,6],[28,28,28,28,28,28,28,26,26,26,13,13,6],[28,28,28,28,28,28,28,26,13,13,13,13,13],[28,28,28,28,28,28,28,13,13,13,13,13,13],[28,28,28,28,28,28,28,13,13,13,13,13,13]],[[25,25,25,25,59,56,59,2,0,0,0,0,0],[25,25,25,25,25,59,59,7,72,72,72,72,72],[25,25,25,25,25,25,59,72,72,72,72,72,72],[25,25,25,0,0,25,25,6,0,0,0,72,0],[25,25,0,0,0,0,6,0,0,0,0,25,6],[26,26,26,0,0,0,24,26,0,0,6,6,6],[26,26,26,0,0,0,26,26,26,26,26,6,6],[0,26,0,0,0,0,26,26,0,26,26,6,6],[0,28,28,28,28,28,28,26,0,26,26,6,6],[28,28,28,28,28,28,28,26,0,26,0,0,0],[28,28,28,28,28,28,28,26,13,13,13,13,0],[56,56,28,28,28,28,28,13,13,13,13,13,13]],[[0,28,28,28,28,28,28,13,13,13,13,13,0],[25,25,25,25,59,59,59,4,0,0,0,0,0],[25,25,25,25,59,59,59,7,7,7,72,72,6],[25,25,25,25,25,25,59,7,7,73,73,25,0],[25,25,25,0,0,25,6,7,0,6,6,6,0],[25,0,0,0,6,6,6,6,0,0,6,6,6],[0,0,0,0,0,6,6,6,0,0,6,6,6],[0,0,0,0,0,0,6,6,0,0,6,6,6],[0,0,0,0,0,0,6,0,0,0,6,6,6],[0,0,28,0,28,28,13,0,0,0,6,6,6],[28,28,28,28,28,28,13,13,13,0,13,6,6],[28,28,28,28,28,28,28,13,13,13,13,13,13],[56,28,28,28,28,28,28,13,13,13,13,13,13],[28,28,28,28,28,28,28,13,13,13,13,13,13]]]


Файл цветового кода - это просто файл, каждая строка которого содержит один шестнадцатеричный код, например: # deb887

Я работал над этой проблемой несколько часов и не могу воспроизвести проблему на данный момент

1 Ответ

1 голос
/ 27 мая 2020

Я попытался воспроизвести ваши результаты, и кое-что привлекло мое внимание.

results reproduced

Если вы внимательно посмотрите на значения feature_map [2], вы можете убедитесь, что пиксель, который вы утверждаете, не классифицирован, на самом деле имеет другое значение, чем пиксели вокруг него. Таким образом, он действительно имеет правильный цвет для своего значения. Поэтому я думаю, что это не из-за неправильной классификации, а из-за ваших данных. Это был бы мой ответ, ЕСЛИ то, что вы подразумеваете под «частью данных» - это пиксель в позиции (0,11), в противном случае я все понял неправильно и извиняюсь за этот ответ.

ПРИМЕЧАНИЕ. Что касается цветов, Я просто выбрал случайные цвета. Не волнуйтесь, если они не совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...