2016-05-29 16 views
-1

50の異なるアフリカ諸国の2つのパラメータ(X1、X2)で階層的クラスタリングを行っています。それで、私はアフリカ大陸内の5つの異なるグループ/クラスターを特定したいと思います。私はそうするために、次のコードを使用しています:r:cutree()を使用した階層的クラスタリングによるChoroplethマップ

hc <- hclust(dist(df), method = "complete") 
member <- cutree(hc, 5) 

今、私はそのようアフリカのマップを着色するためにmemberに格納されている情報(つまり、クラスタID、それぞれの国が属する)を使用したいです各クラスタは別の色で表されます。私はthisのような地図を着色するチュートリアルがたくさんあることを知っています。しかし、私は階層的なクラスター分析の結果に合わせてのの具体的な地図着色アプローチをお勧めしますか?

これまで誰も行っていませんか?私はどのようにこれを最も効率的な方法で達成するためのアドバイスやヒントがあればうれしいです!

df <- structure(list(Country = structure(1:50, .Label = c("Angola", 
"Benin", "Botswana", "Burkina Faso", "Burundi", "Cabo Verde", 
"Cameroon", "Central African Republic", "Chad", "Comoros", "Congo", 
"Cote d'Ivoire", "Democratic Republic of Congo", "Djibouti", 
"Equatorial Guinea", "Eritrea", "Ethiopia", "Gabon", "Gambia", 
"Ghana", "Guinea", "Guinea-Bissau", "Kenya", "Lesotho", "Liberia", 
"Madagascar", "Malawi", "Mali", "Mauritania", "Mauritius", "Mozambique", 
"Namibia", "Niger", "Nigeria", "Reunion", "Rwanda", "Sao Tome and Principe", 
"Senegal", "Seychelles", "Sierra Leone", "Somalia", "South Africa", 
"South Sudan", "Sudan", "Swaziland", "Tanzania", "Togo", "Uganda", 
"Zambia", "Zimbabwe"), class = "factor"), X1 = c(-0.18, -1.03, 
0.6, 1.55, 0.22, 0.26, 0.76, 2.15, -1.43, 0.99, 1.79, -0.39, 
1.73, 1.57, 1.11, -0.09, -1.49, -0.46, -0.48, -1.22, -0.78, -1.46, 
-1.22, 0.35, 0.45, 1.29, -1.37, -0.61, 0.92, -1.3, 0.42, -1.18, 
1.4, -0.83, 0.06, -0.76, -0.19, -0.37, -0.63, 0.64, 0.93, 0.33, 
-0.76, -0.21, -0.59, -0.41, -0.74, 0.39, -1.1, 1.35), X2 = c(-0.22, 
-0.42, 0.72, -0.59, -1.27, 0.64, -1.35, -1.4, -0.35, -1.43, 1.07, 
-0.01, -0.51, 0.11, 1.14, -0.89, 0.77, 1.45, -1.67, -0.83, 0.71, 
0.92, 1.63, 1.68, 0.23, -0.18, 0.07, 0.8, -0.02, 0.82, -0.72, 
-0.41, -0.26, 0.02, -1.68, 1.67, 0.18, 0.98, 1.45, 0.31, -1.23, 
-1.38, -0.63, 1.41, -0.12, 0, -1.3, -1.64, 0.21, 1.52)), .Names = c("Country", 
"X1", "X2"), row.names = c(NA, -50L), class = "data.frame") 

答えて

1

をplotlyあなたのデータと使用:

library(plotly) 


hc <- hclust(dist(df), method = "complete") 
df$member <- cutree(hc, 5) 


#Grabbing the Africa Geo from a plotly example 
g <- list(
    scope = 'africa', 
    showframe = F, 
    showland = T, 
    landcolor = toRGB("grey90") 
) 

plot_ly(df, z = member, type = 'choropleth', mode = 'markers', locations = Country, 
    locationmode = 'country names') %>% layout(geo = g) 

あなたがここで見つけるplotly設定は使用することができます。https://plot.ly/r/reference/

がに切り替えることを次のように

(スケーリング)のデータが見えます不連続なスケールですが、連続したスケールはプロットするだけで問題なく動作します。

+0

とてもうれしいですよ、ありがとう!どのように私のローカルマシンにchoroplethを格納することができるか考えていますか(例えば '.png'や' .jpg')?また、どのように私は国名を永久に表示させることができるか知っていますか? – Joni

+0

plotの出力を変数に格納すると、DTパッケージの 'saveWidget'関数をhtmlファイルとして使用できます。しかし、Rstudioからエクスポートすることもできます – Shape

+0

'plotly_IMAGE(p、width = 500、height = 500、format =" png "、scale = 2、out_file =" Choropleth.png ")'がうまくいきました。 'saveWidget'は' .png'や '.jpg'ではなく' .html'-filesのみを許可しているので、私の場合です。この場合、Sys.setenv( "plotly_username" = "your_plotly_username")で認証資格情報を設定することを忘れないでください。Sys.setenv( "plotly_api_key" = "your_api_key") '** APIキー**は、プロファイル設定[こちら](https://plot.ly/settings/api) – Joni

関連する問題