2012-02-17 10 views
6

scale_fill_brewer(を使用しているため、この質問は以前ここで尋ねられたものと若干異なります。テキスト/ラベルを変更するggplot legend

Chloropleth

など伝説::

legend

は私がそれを好むが、したいが、私はこのようになります。この1 https://gist.github.com/233134

にchoropleth類似したに取り組んでいます凡例のラベルを切り取ったラベルから変更すると、(2、4)は「」のようなフレンドリーなものに変更されます2%〜4% 'または' 2%-4% 'である。私は他の場所で見たことがあります; hereのように、スケール内のラベルを変更するのは簡単です。私はラベル=引数をどこに置くか把握していないようです。私はもちろん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") 

はあなたの援助のために事前にありがとうございます。

EDIT: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 
+0

あなたは速すぎます。私はエラーを見て、それを修正しました。私はもう少し有益なメッセージを受け取りました: "エラー:ラベルと折り返しは同じ長さでなければなりません" –

答えて

10

レベルの修正バージョンを追加するほかに、あなたも設定する必要があります'breaks'パラメータをscale_fill_brewerに設定します。

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)) 
+0

私はそれを試して、私が前に得ていたエラーを得ました。このエラーを反映するために投稿を編集しました。 –

+0

編集後、完全に機能します。ありがとうDWin。それは休憩でした!そのエラーが言ったのはDuhだ。私はちょうどそれと何をするか分からなかった。 –

+0

@TylerRinkerこれはやや厄介な行為だと私は認識していますが、人々はラベルを間違って設定してしまうかもしれないと心配していました。 – hadley

関連する問題