2012-06-12 20 views
6

Tôi muốn vẽ một chuỗi thời gian với ggplot(), dòng thời gian được tạo bằng strptime().ggplot2 bỏ qua danh mục địa phương LC_TIME?

Cho đến nay ok: Tôi nhận chữ viết tắt tiếng Đức cho các tháng trên trục thời gian, ngôn ngữ của tôi được đặt thành Sys.setlocale("LC_TIME"="de_DE.UTF-8"). Khi tôi làm months() với dữ liệu của mình, chúng cũng hiển thị bằng tiếng Đức.

Lạ: Khi tôi đặt ngôn ngữ của mình thành Sys.setlocale("LC_TIME"="en_GB.UTF-8"), months() sẽ cung cấp cho tôi các tháng tiếng Anh NHƯNG ggplot() sẽ tiếp tục có chữ viết tắt GERMAN trong tháng trên trục thời gian.

Tôi đã thử một số danh mục khác của Sys.setlocale() nhưng không có kết quả.

Địa điểm ggplot() lấy thông tin về ngôn ngữ để chọn?

+1

bạn có thể tạo ra một ví dụ tái sản xuất? –

+0

Vâng, khả năng tái tạo phụ thuộc vào ngôn ngữ của hệ thống. Của tôi là "de_DE.UTF-8". Nhưng sau đây sẽ viết tắt tiếng Đức trong nhiều tháng ngay cả khi ngôn ngữ được đặt thành tiếng Anh: Sys.setlocale ("LC_TIME", "en_GB.UTF-8"); dữ liệu <- data.frame (date = strptime (sắp xếp (ISOdate (2010, mẫu (1:12, 40, thay thế = TRUE), mẫu (1: 28,40, thay thế = TRUE))), format = "% Y -% m-% d "), giá trị = runif (4‌ 0,10,12)); ggplot (dữ liệu, aes (ngày, giá trị)) + geom_point() – lambu0815

Trả lời

0

Nhìn vào hằng số và sau đó thay đổi giá trị của month.abb thành những gì bạn muốn. Có lẽ:

month.abb <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec") 
+0

month.abb đã có bằng tiếng Anh. Đây không phải là một điều khó hiểu, điều mà tôi đang tìm kiếm. – lambu0815

0

OK, điều này hơi lạ.

với không gian làm việc mới (ví dụ: sau khi bắt đầu R) ggplot() có thể bị ảnh hưởng bởi Sys.setlocale(). Sau khi bản vẽ đầu tiên đã được thực hiện với một thiết lập khung dữ liệu, các miền địa phương khác sẽ bị bỏ qua đối với khung dữ liệu đó.

3

Tôi nhận ra tôi đã trả lời câu trả lời này muộn đến mức nào, nhưng tôi gặp vấn đề tương tự và tình cờ tìm thấy giải pháp của bạn trong khi tìm kiếm giải pháp.

Đối với tôi

Sys.setenv(LANGUAGE="en") 
Sys.setlocale("LC_TIME", "English") 

giải quyết nó.

0

Cách đơn giản nhất để làm cho nó làm việc là:

Sys.setlocale("LC_ALL", "en_US.UTF-8") 

Sau đó tất cả ggplots có một nhãn ngày thích hợp.

Nếu bạn cần thay đổi chỉ định dạng thời gian này là đủ:

Sys.setlocale("LC_TIME", "en_US.UTF-8") 
Các vấn đề liên quan