6

を使用しているため、この質問は以前にここで尋ねられた同様の質問とは少し異なると思いますscale_fill_brewer(。私はこれに似たコロプレスに取り組んでいます https://gist.github.com/233134

それは次のようになります。

クロロプレス

そして伝説は次のようになります:

伝説

私はそれが好きですが、凡例のラベルをカットのようなラベル、つまり(2, 4]から ' 2% to 4% ' または ' 2% - 4% ' のようなより親しみやすいものに変更したいと考えています。ここで見られるように、scale_... 内のラベルを簡単に変更できます.labels = 引数をどこに置くべきかわかりません.もちろんコードを書き直すことはできますchoropleth$rate_dが、それは非効率的です.どこに引数labels=c(A, B, C, D...)

対象のコードは次のとおりです (完全なコードについては、上記のリンクを使用してください)。

choropleth$rate_d <- cut(choropleth$rate, breaks = c(seq(0, 10, by = 2), 35))

# Once you have the data in the right format, recreating the plot is straight
# forward.

ggplot(choropleth, aes(long, lat, group = group)) +
  geom_polygon(aes(fill = rate_d), colour = alpha("white", 1/2), size = 0.2) + 
  geom_polygon(data = state_df, colour = "white", fill = NA) +
  scale_fill_brewer(pal = "PuRd")

よろしくお願いいたします。

編集:DWinの方法を使用する(これは私が以前に遭遇したものであるため、このエラーを投稿する必要がありました)

> ggplot(choropleth, aes(long, lat, group = group)) +
+   geom_polygon(aes(fill = rate_d), colour = alpha("white", 1/2), size = 0.2) + 
+   geom_polygon(data = state_df, colour = "white", fill = NA) +
+   scale_fill_brewer(pal = "PuRd", labels = lev4)
Error: Labels can only be specified in conjunction with breaks
4

1 に答える 1

10

scale_fill_brewerレベルの変更バージョンを追加することに加えて、「breaks」パラメーターを次のように設定する必要もあります。

lev = levels(rate_d)  # used (2, 4] as test case
 lev2 <- gsub("\\,", "% to ", lev)
 lev3 <- gsub("\\]$", "%", lev2)
 lev3
[1] "(2% to 4%"
lev4 <- gsub("\\(|\\)", "", lev3)
 lev4
[1] "2% to 4%"

ggplot(choropleth, aes(long, lat, group = group)) +
  geom_polygon(aes(fill = rate_d), colour = alpha("white", 1/2), size = 0.2) + 
  geom_polygon(data = state_df, colour = "white", fill = NA) +
  scale_fill_brewer(pal = "PuRd", labels = lev4, , breaks=seq(0, 10, by = 2) )
于 2012-02-17T03:15:22.983 に答える