Как добавить легенду интенсивности цветов после того, как я построю график с использованием grid.raster ()? - PullRequest
1 голос
/ 21 июня 2019

enter image description here Я делаю кластеризацию kmeans на изображении png и строю его с использованием grid :: grid.raster (image). Но я хотел бы поместить легенду, которая показывает интенсивность в полосе (от синего до красного), отмеченной значениями, по существу, указывающими интенсивность на изображении. (изображение - это массив, где третье измерение равно 3, что дает красный, зеленый и синий каналы.) Я думал об использовании grid.legend (), но не мог понять это. Я надеюсь, что сообщество может помочь мне. Ниже приведено изображение, которое я использую, и после того, как я выполню кластеризацию kmeans, мне понадобится легенда, отображающая интенсивность в непрерывном масштабе на цветной полосе. Также я попытался с ggplot2 и мог построить изображение, но все еще не смог построить легенду. Я предоставляю код ggplot для построения изображения. Я также могу извлекать каналы RGB отдельно, используя ggplot2, поэтому это тоже помогает.

colassign <- rgb(Kmeans2@centers[clusters(Kmeans2),])
library(ggplot2)
ggplot(data = imgVEC, aes(x = x, y = y)) + 
  geom_point(colour = colassign) +
  labs(title = paste("k-Means Clustering of", kClusters, "Colours")) +
  xlab("x") +
  ylab("y")

1 Ответ

0 голосов
/ 24 июня 2019

Не нашел способа правильно использовать grid.raster (), но нашел способ сделать это с помощью ggplot2 при раздельном построении каналов RGB. Примечание: это работает только для построения отдельных панелей, но это то, что мне было нужно. Ниже показан код для зеленого канала.

#RGB channels are respectively stored in columns 1,2,3.
#x-axis and y-axis values are stored in columns 4,5.
#original image is a nx5 matrix
ggplot(original_img[,c(3,4,5)], aes(x, y)) +
  geom_point(aes(colour = segmented_img[,3])) +
  scale_color_gradient2()+ 
# scale_color_distiller(palette="RdYlBu") can be used instead of scale_color_gradient2() to get color selections of choice using palette as argument.

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