2012-11-02 31 views
15

Tôi muốn có các nhãn đẹp trên trục y. Ví dụ, tôi muốn có 1.000 thay vì 1000. Làm thế nào tôi có thể thực hiện điều này trong ggplot? Dưới đây là ví dụ tối thiểu:Dấu phân tách hàng ngàn trong nhãn của trục x hoặc y

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000)) 
ggplot(x,aes(x=a, y=b))+ 
       geom_point(size=4) 

Cảm ơn bạn đã gợi ý.

Trả lời

23

Với gói scales, một số tùy chọn định dạng có sẵn: dấu phẩy, đô la, phần trăm. Xem các ví dụ trong ?scale_y_continuous.

Tôi nghĩ rằng đây có phải những gì bạn muốn:

library(ggplot2) 
library(scales) 

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000)) 

ggplot(x, aes(x = a, y = b)) + 
    geom_point(size=4) + 
    scale_y_continuous(labels = comma) 
+0

Vậy là xong. Cảm ơn rất nhiều. – giordano

1

tô điểm hàng ngàn sử dụng bất kỳ ký tự với format() chức năng cơ bản:

Ví dụ 1 (dấu phẩy tách ra).

format(1000000, big.mark = ",", scientific = FALSE) 
[1] "1,000,000" 

Ví dụ 2 (cách nhau khoảng trắng).

format(1000000, big.mark = " ", scientific = FALSE) 
[1] "1 000 000" 

Áp dụng format() để ggplot trục nhãn sử dụng một chức năng ẩn danh:

ggplot(x, aes(x = a, y = b)) + 
     geom_point(size = 4) + 
     scale_y_continuous(labels = function(x) format(x, big.mark = ",", 
                 scientific = FALSE)) 
Các vấn đề liên quan