1. ホーム
  2. r

[解決済み] fviz_clusterでの出力の調整

2022-02-12 17:13:52

質問

の結果を変更したいのですが。 fviz_clust プロットを作成します。具体的には、凡例を "cluster" の代わりに "Cluster" と言い、凡例の中にある巻き線(文字だと思いますが、完全にはわかりません)も削除してください。

知っている fviz_cluster の他の要素で動作します。 ggplot. したがって、私が最初に考えたのは、それぞれの scale_..._.. のプロットを作成しましたが、それでも元の凡例が表示されてしまいました。第二に、私は scale_shape_manual() オブジェクトを ggplot が、プロットはそれを無視しました。

コードです。

km.res <- kmeans(iris[,-5], 3)
p <- fviz_cluster(km.res, iris[,-5]) +
scale_color_brewer(palette='Set2') + # set guides=FALSE to remove legend
scale_fill_brewer(palette='Set2') +
scale_shape_manual('1'=22,'2'=23,'3'=24) # plot ignores this
ggtitle(label='')
p

理想的には、fviz_clusterが生成するものと非常によく似た凡例を表示したいのですが、凡例には形状と各形状の周りの色のボックスが表示されます。そして最後に、"Cluster."というタイトルを付けます。

どのように解決するのですか?

fviz_cluster で動作します。 ggplot コードにエラーがあり、変更が正しく表示されなかったのでしょう。

タイトルを "Cluster"に変更することに関しては、以下のようになります。 scales-..._... または guides . 新しい形状値を scale_shape_manual .

library(factoextra)
km.res <- kmeans(iris[, -5], 3)

p <- fviz_cluster(km.res, iris[, -5]) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
p

凡例のテキストラベル注釈を削除するには、通常、以下のように指定します。 geom_text(show.legend = F) . 私はこれを直接行うことができなかったので、その代わりに、点だけを fviz_cluster を追加し、さらに geom_text で生成されたデータ構造を利用することで、後述する fviz_cluster .

p2 <- fviz_cluster(km.res, iris[, -5], geom = c("point")) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
p2 + geom_text(data=p2$data, aes(x=x, y=y, label=name, colour=cluster),
  vjust=-1, show.legend = F)