1

我正在尝试按照这个看似优秀的教程使用 ggplot2 绘制 k-means 集群,但我似乎无法保留我想要的调色板。

我尝试了什么(工作示例)

以下两个图都产生相同的结果:

test.data <- data.frame(col1=rnorm(400),col2=(rnorm(400)+5))

test.km <- kmeans(test.data,2)

test.data$cluster <- factor(test.km$cluster)
centers <- as.data.frame(test.km$centers)

ggplot(data=test.data, aes(x=col1, y=col2, color=cluster )) + 
  scale_fill_brewer(palette="Set2") +
  geom_point() + 
  geom_point(data=centers, aes(x=col1,y=col2, color='Center')) +


  geom_point(data=centers, aes(x=col1,y=col2, color='Center'),
             size=52, alpha=.3, show_guide=FALSE)


ggplot(data=test.data, aes(x=col1, y=col2, color=cluster )) + 
  scale_fill_brewer(palette="Set2") +
  geom_point() + 
  geom_point(data=centers, aes(x=col1,y=col2, color='Center')) +


  geom_point(data=centers, aes(x=col1,y=col2, color='Center'),
             size=52, alpha=.3, show_guide=FALSE) +
  scale_fill_brewer(palette="Set2")

完整的聚类图

奇怪的是,如果我只是用比例填充功能绘制原始数据点,颜色就会改变:

ggplot(data=CSP.split, aes(x=CSP1, y=CSP2, color=cluster )) + 
scale_fill_brewer(palette="Set2") +
geom_point()

部分聚类图

第一个图像看起来像默认的 ggplot 颜色,即 HSL 色轮周围均匀分布的色调。所以我认为geom_point具有不同数据的系列以某种方式覆盖了调色板。不过,我没有收到任何警告。

4

0 回答 0