使用grid.raster()绘制后如何添加颜色的强度图例?

时间:2019-06-20 21:15:28

标签: r

enter image description here我正在对png图像进行kmeans聚类,并一直使用grid :: grid.raster(image)对其进行绘制。但我想在图例上放置一个图例,以强度值(从蓝色到红色)标记值,从本质上指示图像上的强度。 (图像是一个数组,其中第三维等于3给出了红色,绿色和蓝色通道。) 我想到了使用grid.legend()但无法弄清楚。我希望社区能够帮助我。以下是我一直使用的图像,在执行kmeans聚类后,想要在其旁边有一个图例,该图例在色条上连续显示强度。 我也尝试了ggplot2,可以绘制图像,但仍然无法绘制图例。我正在提供用于绘制图像的ggplot代码。我也可以使用ggplot2分别提取RGB通道,因此显示它也很有帮助。

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 :(得分:0)

找不到正确使用grid.raster()的方法,但是当分别绘制RGB通道时,由ggplot2找到了一种方法。注意:这仅适用于单独绘制面板,但这是我需要的。以下显示绿色通道的代码。

#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.