gpt4 book ai didi

r - 你如何在 ggplot 中订购月份

转载 作者:行者123 更新时间:2023-12-04 09:40:53 27 4
gpt4 key购买 nike

我有一个名为 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")

我想做的是创建一个热图,y 轴上的年份和 x 轴上的月份。

我正在这样做:
 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))

这有点有效,但 x 轴上的月份不是一月、二月、三月、四月...十二月的顺序。

它们从四月、八月等按字母顺序排列。
  • 我如何订购一月到十二月的 x 轴?
  • 有没有办法更改默认颜色,它看起来像是使用蓝色阴影?
  • 我可以在 geom_tiles 中插入文本吗?我想在磁贴内插入 Time 和 Peak_Logons。

  • 我真的很感激任何见解。

    最佳答案

  • 使用重新排序来排列轴标签。我创建了一个带有月份索引的新列。
  • geom_text添加文本。也许你应该玩文字大小。
  • scale_fill_gradientn改变填充颜色。另见 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")

    关于r - 你如何在 ggplot 中订购月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20524408/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com