我有一些数据城市的样本,我正在为一些参数聚类。但是我无法直观地表示它们,首先使用了群集图,但是我无法理解为什么尺度会发生变化,因为即使仅使用2个分量进行绘图,数据范围从-1到1,范围从-4到4以及 - 2到2,正如您在示例1中看到的那样。
[
所以我使用了hullplot DBSCAN包,但是该图不会在输出中显示城市名称,如clusplot,请参阅2。有人可以给我一个如何将这些名称添加到图表的建议吗?
答案 0 :(得分:0)
我会尝试使用ggplot2和ggrepel包。我借用代码从this question制作凸包。
set.seed(175)
library(ggplot2)
library(ggrepel) # Or first install.packages("ggrepel")
# Make the cluster
mtcars$cluster <- as.factor(kmeans(mtcars, 3)$cluster)
# Get the convex hull for the axes you want to plot
hull_df <- plyr::ddply(mtcars, "cluster", function(dta) {
hull <- chull(dta$mpg, dta$disp)
dta[c(hull, hull[1]), ]
})
ggplot(mtcars, aes(mpg, disp, color = cluster, fill = cluster)) +
geom_point() +
geom_polygon(data = hull_df, alpha = 0.5) +
geom_text_repel(aes(label = row.names(mtcars)))
答案 1 :(得分:0)
以下是如何使用dbscan执行此操作的一些示例:
library(dbscan)
set.seed(2)
n <- 400
x <- cbind(
x = runif(4, 0, 1) + rnorm(n, sd=0.1),
y = runif(4, 0, 1) + rnorm(n, sd=0.1),
z = runif(4, 0, 1) + rnorm(n, sd=0.1)
)
cl <- rep(1:4, time = 100)
### show some points (first 10) inside the hulls with text
hullplot(x, cl, main = "True clusters", pch = NA)
points(x[1:10,])
text(x[1:10,], labels = paste("Obs.", 1:10), pos = 3)
### look at dimensions x and z
hullplot(x[, c("x", "z")], cl, main = "True clusters")
### use a PCA projection
hullplot(prcomp(x)$x, cl, main = "True clusters")
您可以查看wordcloud包以获得更好的文字布局。见here.