How do you order Months at ggplot

I have this data frame called yy:

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") 

What I would like to do is create a heat map, Year on the Y axis and Month on the x axis.

I'm doing it:

  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)) 

This view works, but the months along the x axis are not the order of January, February, March, April ... December.

They come in an appetizing manner from April, August, etc.

  • How can I arrange the x axis from January to December?
  • Is there a way to change the default colors, it looks like it is using blue hues?
  • Can I pass the text geom_tiles? I would like to insert Time and Peak_Logons inside the tile.

I would really appreciate your understanding.

+6
source share
2 answers
  • Use order to arrange axis labels. I am creating a new column with the month index.
  • geom_text to add text. Perhaps you should play with the size of the text.
  • scale_fill_gradientn to change the fill color. See Also 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") 
+4
source

You seem to consider months an ordered factor. You must do this in 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 
+1
source

All Articles