2012-02-17 41 views
6

Tôi tin rằng câu hỏi này hơi khác so với những câu hỏi tương tự được yêu cầu tại đây trước đây vì việc sử dụng scale_fill_brewer(. Tôi đang làm việc trên một tương tự choropleth này một https://gist.github.com/233134Thay đổi văn bản/nhãn ggplot huyền thoại

Đó trông như thế này:

Chloropleth

và truyền thuyết như:

legend

tôi thích nó nhưng muốn thay đổi nhãn trên chú giải từ các nhãn cắt tìm kiếm, ví dụ: (2, 4] cho một cái gì đó thân thiện hơn như '2% đến 4% 'hoặc' 2% - 4% '. Tôi đã nhìn thấy ở nơi khác nó, s dễ dàng để thay đổi các nhãn bên trong quy mô _... như đã thấy here. Tôi dường như không thể tìm ra nơi để đặt nhãn = đối số. Tôi tất nhiên có thể mã lại choropleth$rate_d nhưng điều đó có vẻ không hiệu quả. Tôi nên đặt đối số labels=c(A, B, C, D...) ở đâu?

Dưới đây là các mảnh của mã hấp dẫn (đối với mã đầy đủ sử dụng liên kết ở trên)

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") 

Cảm ơn bạn trước để được giúp đỡ của bạn.

EDIT: Sử dụng phương pháp DWin của (nên đã gửi lỗi này vì đây là những gì tôi chạy lên chống lại trước)

> 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

Bạn đang quá nhanh. Tôi đã thấy lỗi và sửa nó. Tôi nhận được một thông báo hơi nhiều thông tin hơn: "Lỗi: Nhãn và ngắt phải có cùng độ dài" –

Trả lời

10

Bên cạnh đó thêm một phiên bản sửa đổi của các cấp, các bạn cũng cần phải thiết lập thông số 'ngắt' thành 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

Tôi đã thử và nhận được lỗi mà tôi nhận được trước đây (sử dụng tốt nhất gsub). Tôi đã chỉnh sửa bài đăng của mình để phản ánh lỗi này. –

+0

Sau khi chỉnh sửa, nó hoạt động hoàn hảo. Cảm ơn DWin. Đó là những giờ nghỉ! Duh đó là những gì lỗi nói. Tôi chỉ không biết phải làm gì với nó. –

+0

@TylerRinker Tôi nhận ra đây là hành vi hơi khó chịu, nhưng tôi đã lo lắng mọi người có thể đặt sai các nhãn và họ sẽ kết thúc ngoài sự liên kết với các lần ngắt. – hadley

Các vấn đề liên quan