2013-12-11 13 views
6

Tôi có khung dữ liệu này được gọi là yy:làm thế nào để bạn đặt hàng tháng trong ggplot

structure(list(Time = structure(c(1209096000, 1238731200, 1272600000, 
1301666400, 1335794400, 1364835600, 1218772800, 1250222400, 1280808000, 
1314028800, 1346421600, 1377835200, 1229317200, 1262235600, 1291352400, 
1324047600, 1355497200, 1385960400, 1204261200, 1235710800, 1265950800, 
1298646000, 1328281200, 1360940400, 1199250000, 1232082000, 1263186000, 
1295017200, 1326466800, 1357149600), class = c("POSIXct", "POSIXt" 
), tzone = ""), Peak_Logons = c(472452L, 398061L, 655849L, 881689L, 
873720L, 1278295L, 340464L, 520943L, 1995150L, 883184L, 931721L, 
1098553L, 405193L, 638301L, 734635L, 1254951L, 962391L, 1126432L, 
316200L, 477407L, 674884L, 812793L, 898550L, 1541478L, 291564L, 
394967L, 902076L, 916832L, 878264L, 918102L), Year = c("2008", 
"2009", "2010", "2011", "2012", "2013", "2008", "2009", "2010", 
"2011", "2012", "2013", "2008", "2009", "2010", "2011", "2012", 
"2013", "2008", "2009", "2010", "2011", "2012", "2013", "2008", 
"2009", "2010", "2011", "2012", "2013"), Month = c("April", "April", 
"April", "April", "April", "April", "August", "August", "August", 
"August", "August", "August", "December", "December", "December", 
"December", "December", "December", "February", "February", "February", 
"February", "February", "February", "January", "January", "January", 
"January", "January", "January")), .Names = c("Time", "Peak_Logons", 
"Year", "Month"), row.names = c(35479L, 30535L, 23645L, 15248L, 
49696L, 8077L, 24651L, 13098L, 20204L, 47450L, 41228L, 20740L, 
28049L, 9739L, 2636L, 50230L, 43746L, 3435L, 38091L, 28351L, 
7382L, 3343L, 47824L, 45481L, 23951L, 29664L, 10024L, 4545L, 
38808L, 44205L), class = "data.frame") 

Những gì tôi muốn làm là tạo ra một bản đồ nhiệt, năm trên trục y và tháng về trục x .

tôi đang làm điều này:

ggplot(yy ,aes(Month, Year, fill=Peak_Logons)) + 
    geom_tile() + 
    theme_bw() + 
    guides(fill = guide_legend(keywidth = 5, keyheight = 1)) + 
    theme(axis.text.x = element_text(size=10, angle=45, hjust=1)) 

này kinda hoạt động nhưng tháng trên trục x không được đặt hàng từ tháng Một, tháng Hai, tháng Ba, tháng Tư ... Tháng Mười Hai.

Họ là trật tự aphabetically từ ngày, tháng, vv

  1. Làm thế nào tôi sẽ ra lệnh trục x từ tháng một-tháng mười hai?
  2. Có cách nào để thay đổi màu mặc định, có vẻ như nó đang sử dụng các tông màu xanh?
  3. Tôi có thể gán văn bản cho geom_tiles không? Tôi muốn chèn Thời gian và Peak_Logons bên trong ô.

Tôi thực sự đánh giá cao bất kỳ thông tin chi tiết nào.

+0

Đối với câu hỏi đầu tiên, bạn đã thử bao thanh toán biến tháng đầu tiên? 'yy $ Month <- factor (yy $ Month, month.name)' có lẽ. – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto, cảm ơn bạn đã làm việc. – user1471980

Trả lời

4
  • Sử dụng sắp xếp lại để sắp xếp nhãn trục của bạn. Tôi tạo một cột mới với chỉ mục tháng.
  • geom_text để thêm văn bản. Có lẽ bạn nên chơi với kích thước văn bản.
  • scale_fill_gradientn để thay đổi màu tô. Xem thêm scale_fill_gradientn

enter image description here

dat.m <- data.frame(Month=months(seq(as.Date("2000/1/1"), 
       by = "month", length.out = 12)),month.id = 1:12) 

yy <- merge(yy,dat.m) 
library(ggplot2) 
ggplot(yy ,aes(reorder(Month,month.id), Year, fill=Peak_Logons)) + 
    geom_tile() + 
    theme_bw() + 
    guides(fill = guide_legend(keywidth = 5, keyheight = 1)) + 
    theme(axis.text.x = element_text(size=10, angle=45, hjust=1)) + 
    geom_text(aes(label=paste(Peak_Logons,format(Time,"%H"),sep='-'))) + 
    scale_fill_gradient(low = "yellow", high = "red") 
1

Bạn dường như xem xét tháng một yếu tố đặt hàng. Bạn nên làm cho nó một trong R:

Month = c("April", "April", 
      "April", "April", "April", "April", "August", "August", "August", 
      "August", "August", "August", "December", "December", "December", 
      "December", "December", "December", "February", "February", "February", 
      "February", "February", "February", "January", "January", "January", 
      "January", "January", "January") 

Month.ordered <- ordered(Month, month.name) 
#[1] April April April April April April August August August August August August December December December December 
#[17] December December February February February February February February January January January January January January 
#Levels: January < February < March < April < May < June < July < August < September < October < November < December 
Các vấn đề liên quan