2012-08-13 24 views
5

Tôi đã nhận thấy rằng, sử dụng gói scales, người ta có thể hiển thị đô la trên trục, sử dụng tùy chọn scales = dollar bên trong, ví dụ: scale_y_log10(). Một tùy chọn như scales = euro dường như thiếu. Có cách nào dễ dàng để tôi đạt được hiệu quả tương tự không?Euro-đăng nhập ggplot: gói cân

Trả lời

12

Thật dễ dàng để sửa đổi dollar_format và thay đổi ký hiệu thành euro. Khởi này và đặt nó trong các mã như bạn sẽ gọi dollar_format

euro_format <- function(largest_with_cents = 100000) { 
    function(x) { 
    x <- round_any(x, 0.01) 
    if (max(x, na.rm = TRUE) < largest_with_cents & 
     !all(x == floor(x), na.rm = TRUE)) { 
     nsmall <- 2L 
    } else { 
     x <- round_any(x, 1) 
     nsmall <- 0L 
    } 
    str_c("€", format(x, nsmall = nsmall, trim = TRUE, big.mark = ",", scientific = FALSE, digits=1L)) 
    } 
} 
+3

Cảm ơn rất nhiều, điều này hoạt động tốt! Đối với những người vẫn còn bối rối, bạn sẽ cần phải có các gói 'reshape' và' stringr' được nạp, ngoài 'ggplot' và' scales', để thực hiện công việc này. –

+1

Trong một thử nghiệm giới hạn, tôi tìm thấy các công việc sau đây, chỉ dựa vào '' ggplot2'' và '' scale'': '' euroFrance <- function (x) { paste0 (định dạng (x, big.mark = " ", decimal.mark =", ", trim = TRUE, science = FALSE)," € ")}' '(trong đó tôi đã chọn kiểu Pháp để tương phản với ví dụ của Luciano và hiển thị phạm vi khả năng). Hoặc để nói nó khác đi, nếu bạn không cần phải lo lắng về làm tròn hoặc cắt tỉa số thập phân, một hàm đơn giản sẽ làm. Oh và bạn sẽ gọi nó như vậy: '' + scale_y_continuous (labels = euroFrance, break = etc.'' – PatrickT

6

Bạn có thể sử dụng prefixsuffix lập luận của dollar_format

Ví dụ như thế này:

library(ggplot2) 
library(scales)  
ggplot(diamonds) + geom_point(aes(x = carat, y = price)) + scale_y_continuous(labels = dollar_format(suffix = "€", prefix = "")) 
+0

Tôi nhận được một lỗi dọc theo dòng 'Không phải tất cả các ký tự trong ~/R/stuff.Rmd có thể là được mã hóa bằng cách sử dụng ISO8859-1.Để lưu bằng cách sử dụng mã hóa khác, chọn "File | Save with Encoding ..." từ trình đơn chính.' Bạn sẽ đề xuất mã hóa nào cho giải pháp của mình? – DaveRGP

+0

Đó là công việc phù hợp với tôi. – andrii