2016-08-02 20 views
10

Cụ thể, đây là một facet_grid. Đã googled rộng rãi cho các câu hỏi tương tự nhưng không rõ ràng về cú pháp hoặc nơi nó đi. Những gì tôi muốn là cho mỗi số trên trục y có hai chữ số sau dấu thập phân, ngay cả khi dấu thập phân là 0. Đây có phải là tham số trong scale_y_continuous hoặc element_text hoặc ...?Làm cách nào để thay đổi số chữ số thập phân trên nhãn trục trong ggplot2?

row1 <- ggplot(sector_data[sector_data$sector %in% pages[[x]],], aes(date,price)) + geom_line() + 
    geom_hline(yintercept=0,size=0.3,color="gray50") + 
    facet_grid(~ sector) + 
    scale_x_date(breaks='1 year', minor_breaks = '1 month') + 
    scale_y_continuous(labels = ???) + 
    theme(panel.grid.major.x = element_line(size=1.5), 
     axis.title.x=element_blank(), 
     axis.text.x=element_blank(), 
     axis.title.y=element_blank(), 
     axis.text.y=element_text(size=8), 
     axis.ticks=element_blank() 
) 

Trả lời

19

Từ sự giúp đỡ cho ?scale_y_continuous, lập luận 'nhãn' có thể là một chức năng:

nhãn Một trong:

  • NULL cho không có nhãn

  • khước từ() cho các nhãn mặc định được tính toán bởi đối tượng chuyển đổi

  • Một vector nhân vật cho nhãn (phải là cùng một chiều dài như nghỉ giải lao)

  • Một chức năng mà mất vỡ như là đầu vào và trả về nhãn hàng hoá theo sản lượng

Chúng tôi sẽ sử dụng tùy chọn cuối cùng, một hàm nhận breaks làm đối số và trả về một số có 2 chữ số thập phân.

#Our transformation function 
scaleFUN <- function(x) sprintf("%.2f", x) 

#Plot 
library(ggplot2) 
p <- ggplot(mpg, aes(displ, cty)) + geom_point() 
p <- p + facet_grid(. ~ cyl) 
p + scale_y_continuous(labels=scaleFUN) 

enter image description here

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