1

K-means クラスタリングを使用していくつかの値をクラスタ化しました。3 つのグラフをプロットします。3 番目のグラフの凡例が必要です。関数を使用しlengend()て凡例をプロットしましたが、凡例はプロットに表示されず (画像を参照)、エラーは報告されません。

library(cluster) 
library(MASS)

par(mfrow=c(1,3))
par(oma=c(5,0,3,0))

dat <- read.table("representative_for_r.txt", header=TRUE)


data.p <- as.matrix(dat$Average_RMSD)

# Determine number of clusters
wss <- (nrow(data.p)-1)*sum(apply(data.p,2,var))
for (i in 2:15) wss[i] <- sum(kmeans(data.p,centers=i)$withinss)
plot(1:15, wss, type="b", xlab="Number of Clusters",ylab="Within groups sum of squares")



# K-Means Cluster Analysis
fit <- kmeans(data.p, 6) # 6 cluster solution

# get cluster means 
aggregate(data.p,by=list(fit$cluster),FUN=mean)

# append cluster assignment
data.p <- data.frame(data.p, fit$cluster)


# PLot Clusters
clusplot(data.p, fit$cluster, color=TRUE, shade=TRUE, labels=2, lines=0)

data.p <- data.frame(dat$PDB, data.p)
#print(data.p)

plot(data.p[,2],col=data.p$fit.cluster) # takes the RMSD column of data.p(by indexing) then colours the points defined by the clustering
par(xpd=NA)
legend(0,0, c("Group 1","Group 2", "Group 3", "Group 4", "Group 5", "Group 6", "Group 7"), pch=1, col=1:7)

write.matrix(data.p, file = "kmeans_output.txt", sep = " ")

出力は次のようになります。

ここに画像の説明を入力

X 値と Y 値を次のように変更してみました。

200,200
-200,200
200,-200
-200,-200
4

1 に答える 1

1

試す:

legend("bottomleft", legend = paste("Group", 1:7), pch=1, col=1:7)

y軸の目盛りに注目してください。渡す 2 番目の座標legend()は、プロットの範囲内にある必要があります。0と の両方が-200200図 3 の限界を (かなり) 超えています。

これらのことを推測したくない場合は、キャラクターを使用して配置を定義する方がはるかに直感的です。?legend提供できる文字位置の詳細については、 を参照してください。

于 2012-10-17T15:13:41.263 に答える