2012-05-13 37 views
38

Trong một phiên bản trước của ggplot2, tôi đã có thể sử dụng một trong hai lệnh sau đây để định dạng ngày x của tôi: HoặcFormatting ngày với scale_x_date trong ggplot2

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=(date_format="%B")) + 

hoặc

scale_x_date(major="months", minor="weeks", format="%B") + 

để tạo ra định dạng "% B", có tên tháng đầy đủ.

(Tôi e rằng tôi không còn có thể phân biệt cái nào làm việc, bởi vì họ đều nhận xét ra.)

tôi không nhớ khi nào, nhưng sau khi cập nhật hoặc R hoặc ggplot trong một bản nâng cấp ubuntu 12.04, điều này không còn làm việc cho tôi nữa. Bây giờ, các dữ liệu rất giống nhau tạo ra lỗi:

Error in scale_labels.continuous(scale) : 
    Breaks and labels are different lengths 

Với sự đầu tiên, và

Error in continuous_scale(aesthetics, "date", identity, breaks = breaks, : 
    unused argument(s) (major = "months", minor = "weeks", format = "%B") 

Với thứ hai.

Nếu tôi loại bỏ các nhãn = tranh luận, và áp dụng

scale_x_date(breaks = "1 month", minor_breaks = "1 week") + 

nó tạo ra một định dạng ngày "YYYY-MM-DD" vào ngày đầu tiên của mỗi tháng. ?

Tư vấn với sự giúp đỡ cho scale_x_date chức năng, tôi cũng đã thử như sau:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) + 

Nhưng điều này tạo ra lỗi này:

Error in structure(list(call = match.call(), aesthetics = aesthetics, : 
    could not find function "date_format" 

Làm thế nào tôi có thể đạt được tháng-name "% B "định dạng trên trục x của tôi? (Nếu bạn có bất kỳ hiểu biết sâu sắc bổ sung vào các cơ chế sản xuất các thông báo lỗi, tôi cũng muốn đánh giá cao nó.)

+3

Có rất nhiều thay đổi đáng kể trong ggplot 0.9.0. Bạn sẽ tìm thấy [hướng dẫn chuyển đổi] (http://cloud.github.com/downloads/hadley/ggplot2/guide-col.pdf) rất hữu ích trong việc tăng tốc. – joran

Trả lời

29

Với ggplot2 mới v 2.0.0, một cách để làm điều đó là:

scale_x_date(date_breaks = "1 month", date_minor_breaks = "1 week", date_labels = "%B") 
+4

Câu trả lời của tôi dưới đây hiện đã lỗi thời. Điều này có các thông số đúng. – Mittenchops

54

Nevermind, câu trả lời là sử dụng phiên bản tìm thấy trong các tài liệu hướng dẫn,

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) + 

Và để bao gồm library(scales) làm số documentation nói.

+1

Bạn nên xem xét việc nhận ra đây là câu trả lời hoàn chỉnh và đóng chủ đề này. –

+1

Có thể cập nhật các tham số thành 'date_break' và' date_minor_break' kể từ phiên bản 'ggplot2' mới ... – drmariod

+0

@drmariod chính xác, có vẻ như API đã thay đổi một lần nữa và câu trả lời của tôi không còn hợp lệ nữa (mặc dù lời khuyên sử dụng phiên bản tìm thấy là tài liệu vẫn còn tốt!). Tôi sẽ nhận ra câu trả lời của YCR bây giờ là chính xác, nếu tôi có thể sửa đổi ... – Mittenchops

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