2017-04-10 5 views
0

本当に混乱します。 'Mclust' model objectのプロット(分類または不確実性)の軸ラベルをRに変更したいのですが、なぜ2つの変数だけではなく、いくつかの変数を持つ単純なオブジェクトのために機能しているのか分かりません。ここでR:プロットの軸ラベルを変更します。gcplot2を使ったmclustモデルのMustおよびNumプロットの不確定性

例:私が試した

require(mclust) 

mod1 = Mclust(iris[,1:2]) 
plot(mod1, what = "uncertainty", dimens = c(1,2), xlab = "test") 
# changed x-axis-label 

mod2 = Mclust(iris[,1:4]) 
plot(mod2, what = "uncertainty", dimens = c(1,2), xlab = "test") 
# no changed x-axis-label 

別の方法coordProjしていました:

coordProj(data= iris[, -5], dimens = c(1,2), parameters = mod2$parameters, 
      z = mod2$z, what = "uncertainty", xlab = "test") 
# Error in plot.default(data[, 1], data[, 2], pch = 19, main = "", xlab = xlab, : 
#      formal argument "xlab" matched by multiple actual arguments 

だから私は多分それはggplot2で動作します(とそれは私の好きなオプションだろう)、と思いました。今では軸ラベルなどを変更することはできますが、楕円をどのようにプロットするのか分かりません。

require(ggplot2) 

ggplot(data = iris) + 
    geom_point(aes(x = Sepal.Length, y = Sepal.Width, size = mod2$uncertainty)) + 
    scale_x_continuous(name = "test") 

誰かがplot.Mclustで軸ラベルを変更したり、ggplotに楕円を追加するためのソリューションを知っている可能性がある場合には、いいだろう。 ありがとう!

+0

私はELKIによって行わ可視化好き:あなたの助けをhttps://en.m.wikipedia.org/wiki/File:EM_Clustering_of_Old_Faithful_data.gif –

答えて

2

私はplot.Mclustのコードを見始めましたが、次にstat_ellipseを使用して、プロットが同じに見えるまでレベルを変更しました。それは、デフォルトの95%の代わりに、012%信頼度で、t -distribution(デフォルト)のジョイントであるようです。おそらく実際の共分散行列(mod2$parameters$variance$sigma)を使ってそれを行うより良い方法がありますが、これはあなたが望むところにあなたをもたらします。

require(dplyr) 

iris %>%  
    mutate(uncertainty = mod2$uncertainty, 
      classification = factor(mod2$classification)) %>% 
    ggplot(aes(Sepal.Length, Sepal.Width, size = uncertainty, colour = classification)) + 
     geom_point() + 
     guides(size = F, colour = F) + theme_classic() + 
     stat_ellipse(level = 0.5, type = "t") + 
     labs(x = "Label X", y = "Label Y") 

output of codeblock

+1

感謝を!残念ながら私はあなたのプロットを再現することはできません、おそらく別のmod2を計算した?しかし、私は実際のデータに対して、 'level = 0.4、type =" norm "'というオプションを、元のプロットに最も近いように見せてくれる、同じ解決法、昨日の 'stat_ellipse'の使用に来ました。おそらく、mclustのモデル仮定(有限混合モデルの構成要素の多変量ガウス分布)を考えると、やや意味があります。とにかく、あなたの努力のおかげで、それはプロットを転送するための簡単な方法です。 また、私は[こちら](https://groups.google.com/forum/#!topic/ggplot2/z-j_IeACczA)を見ました。 – user5514978

関連する問題